diff --git a/proto/category.proto b/proto/category.proto new file mode 100644 index 0000000..8ccc0e5 --- /dev/null +++ b/proto/category.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +import "google/protobuf/empty.proto" + +package category.v1; + +service CategoryService { + rpc GetAllCategories (google.protobuf.Empty) returns GetAllCategoriesResponse; +} + +message GetAllCategoriesResponse { + repeated Category categories = 1; +} + +message Category { + string id = 1; + string title = 2; + string slug = 3; +} diff --git a/proto/movie.proto b/proto/movie.proto new file mode 100644 index 0000000..eccb478 --- /dev/null +++ b/proto/movie.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; + +package movie.v1; +import "google/protobuf/timestamp.proto"; + +service MovieService { + rpc ListMovies (ListMovieRequest) returns (ListMovieResponse); + rpc GetMovie (GetMovieRequest) returns (GetMovieResponse); +} + +message ListMovieRequest { + string category = 1; + bool random = 2; + int32 limit = 3 +} + +message ListMovieResponse { + repeated Movie movies = 1; +} + +message GetMovieRequest { + oneof key { + string id = 1; + string slug = 2; + } +} + +message GetMovieResponse { + MovieDetails movie = 1; +} + + +message Movie { + string id = 1; + string title = 2; + string slug = 3; + string poster = 4; + string rating_age = 5; + google.protobuf.Timestamp timestamp = 6; +} + +message MovieDetails { + string id = 1; + string title = 2; + string slug = 3; + string description = 4; + string poster = 5; + string banner = 6; + int32 duration = 7; + string rating_age = 8; + string country = 9; + google.protobuf.Timestamp timestamp = 10; +} diff --git a/src/proto/paths.ts b/src/proto/paths.ts index e49d6fa..b6df230 100644 --- a/src/proto/paths.ts +++ b/src/proto/paths.ts @@ -30,4 +30,8 @@ export const PROTO_PATHS = { USERS: join(__dirname, '../../proto/users.proto'), /** Путь к `media.proto` (пакет `media.v1`) */ MEDIA: join(__dirname, '../../proto/media.proto'), + /** Путь к `movie.proto` (пакет `movie.v1`) */ + MOVIE: join(__dirname, '../../proto/movie.proto'), + /** Путь к `category.proto` (пакет `category.v1`) */ + CATEGORY: join(__dirname, '../../proto/category.proto'), } as const