From f6e360d58df91205177b6e54a1e873b151387553 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 22 Apr 2026 06:23:11 +0300 Subject: [PATCH] feat: add screening proto --- proto/screening.proto | 79 +++++++++++++++++++++++++++++++++++++++++++ src/proto/paths.ts | 2 ++ 2 files changed, 81 insertions(+) create mode 100644 proto/screening.proto diff --git a/proto/screening.proto b/proto/screening.proto new file mode 100644 index 0000000..72b0baa --- /dev/null +++ b/proto/screening.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package screening.v1; + +service ScreeningService { + rpc CreateScreening (CreateScreeningRequest) returns (CreateScreeningResponse); + rpc GetScreening (GetScreeningRequest) returns (GetScreeningResponse); + rpc GetScreenings (GetScreeningsRequest) returns (GetScreeningsResponse); + rpc GetScreeningsByMovie (GetScreeningsByMovieRequest) returns (GetScreeningsByMovieResponse); +} + +message CreateScreeningRequest { + string movie_id = 1; + string hall_id = 2; + string start_at = 3; + string end_at = 4; +} + +message CreateScreeningResponse { + bool ok = 1; +} + +message GetScreeningRequest { + string id = 1; +} +message GetScreeningResponse { + Screening screening = 1; +} + +message GetScreeningsRequest { + optional string theater_id = 1; + optional string date = 2; +} + +message GetScreeningsResponse { + repeated Screening screenings = 1; +} + +message GetScreeningsByMovieRequest { + string movie_id = 1; + optional string date = 2; +} +message GetScreeningsByMovieResponse { + repeated Screening screenings = 1; +} + +message Screening { + string id = 1; + string start_at = 2; + string end_at = 3; + Theater theater = 4; + Hall hall = 5; + Movie movie = 6; + repeated SeatType seat_types = 7; +} + +message Movie { + string id = 1; + string title = 2; + string slug = 3; + int32 duration = 4; + string banner = 5; +} + +message Theater { + string id = 1; + string name = 2; + string adress = 3; +} + +message Hall { + string id = 1; + string name = 2; +} + +message SeatType { + string type = 1; + int32 price = 2; +} diff --git a/src/proto/paths.ts b/src/proto/paths.ts index bacad9b..6a82245 100644 --- a/src/proto/paths.ts +++ b/src/proto/paths.ts @@ -40,4 +40,6 @@ export const PROTO_PATHS = { HALL: join(__dirname, '../../proto/hall.proto'), /** Путь к `seat.proto` (пакет `seat.v1`) */ SEAT: join(__dirname, '../../proto/seat.proto'), + /** Путь к `screening.proto` (пакет `screening.v1`) */ + SCREENING: join(__dirname, '../../proto/screening.proto'), } as const