Compare commits

...

2 Commits

Author SHA1 Message Date
359777f856 1.2.0
Some checks failed
Publish / Publish npm package action (push) Failing after 52s
Publish Go Bondings / Publish Go package action (push) Successful in 1m38s
2026-04-05 08:46:36 +03:00
7c6989f871 feat: add movie and category service 2026-04-05 08:46:25 +03:00
4 changed files with 77 additions and 1 deletions

View File

@ -1,6 +1,6 @@
{
"name": "@teacinema/contracts",
"version": "1.1.8",
"version": "1.2.0",
"description": "Protocol Buffers contracts for microservices",
"scripts": {
"build": "tsc -p tsconfig.build.json",

19
proto/category.proto Normal file
View File

@ -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;
}

53
proto/movie.proto Normal file
View File

@ -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;
}

View File

@ -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