Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f7e7c6058 | |||
| 96174b4d5d | |||
| b406d316db | |||
| f6e360d58d | |||
| 27d9310118 | |||
| 7eb5a02a2d | |||
| 2a1a909138 | |||
| bb9ff65861 | |||
| a735405b7e | |||
| a517282198 | |||
| eead3d5078 | |||
| 276e1bb7e7 | |||
| 67f2fc6472 | |||
| 8dd77c9969 | |||
| db123f7162 | |||
| 6a9e991782 | |||
| 11c023a530 | |||
| 2ec654e667 |
89
gen/ts/hall.ts
Normal file
89
gen/ts/hall.ts
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.11.0
|
||||||
|
// protoc v6.33.4
|
||||||
|
// source: hall.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
||||||
|
import { Observable } from "rxjs";
|
||||||
|
|
||||||
|
export const protobufPackage = "hall.v1";
|
||||||
|
|
||||||
|
export interface CreateHallRequest {
|
||||||
|
name: string;
|
||||||
|
theaterId: string;
|
||||||
|
layout: RowLayout[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateHallResponse {
|
||||||
|
hall: Hall | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ListHallsByTheaterRequest {
|
||||||
|
theaterId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ListHallsByTheaterResponse {
|
||||||
|
halls: Hall[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetHallRequest {
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetHallResponse {
|
||||||
|
hall: Hall | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Hall {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
theaterId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RowLayout {
|
||||||
|
row: number;
|
||||||
|
columns: number;
|
||||||
|
type: string;
|
||||||
|
price: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HALL_V1_PACKAGE_NAME = "hall.v1";
|
||||||
|
|
||||||
|
export interface HallServiceClient {
|
||||||
|
createHall(request: CreateHallRequest): Observable<CreateHallResponse>;
|
||||||
|
|
||||||
|
getHall(request: GetHallRequest): Observable<GetHallResponse>;
|
||||||
|
|
||||||
|
listHallsByTheater(request: ListHallsByTheaterRequest): Observable<ListHallsByTheaterResponse>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface HallServiceController {
|
||||||
|
createHall(
|
||||||
|
request: CreateHallRequest,
|
||||||
|
): Promise<CreateHallResponse> | Observable<CreateHallResponse> | CreateHallResponse;
|
||||||
|
|
||||||
|
getHall(request: GetHallRequest): Promise<GetHallResponse> | Observable<GetHallResponse> | GetHallResponse;
|
||||||
|
|
||||||
|
listHallsByTheater(
|
||||||
|
request: ListHallsByTheaterRequest,
|
||||||
|
): Promise<ListHallsByTheaterResponse> | Observable<ListHallsByTheaterResponse> | ListHallsByTheaterResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function HallServiceControllerMethods() {
|
||||||
|
return function (constructor: Function) {
|
||||||
|
const grpcMethods: string[] = ["createHall", "getHall", "listHallsByTheater"];
|
||||||
|
for (const method of grpcMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcMethod("HallService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
const grpcStreamMethods: string[] = [];
|
||||||
|
for (const method of grpcStreamMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcStreamMethod("HallService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HALL_SERVICE_NAME = "HallService";
|
||||||
@ -35,8 +35,8 @@ export interface Movie {
|
|||||||
title: string;
|
title: string;
|
||||||
slug: string;
|
slug: string;
|
||||||
poster: string;
|
poster: string;
|
||||||
ratingAge: string;
|
ratingAge: number;
|
||||||
timestamp: Timestamp | undefined;
|
releaseDate: Timestamp | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MovieDetails {
|
export interface MovieDetails {
|
||||||
@ -47,9 +47,9 @@ export interface MovieDetails {
|
|||||||
poster: string;
|
poster: string;
|
||||||
banner: string;
|
banner: string;
|
||||||
duration: number;
|
duration: number;
|
||||||
ratingAge: string;
|
ratingAge: number;
|
||||||
country: string;
|
country: string;
|
||||||
timestamp: Timestamp | undefined;
|
releaseDate: Timestamp | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const MOVIE_V1_PACKAGE_NAME = "movie.v1";
|
export const MOVIE_V1_PACKAGE_NAME = "movie.v1";
|
||||||
|
|||||||
129
gen/ts/screening.ts
Normal file
129
gen/ts/screening.ts
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.11.0
|
||||||
|
// protoc v6.33.4
|
||||||
|
// source: screening.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
||||||
|
import { Observable } from "rxjs";
|
||||||
|
|
||||||
|
export const protobufPackage = "screening.v1";
|
||||||
|
|
||||||
|
export interface CreateScreeningRequest {
|
||||||
|
movieId: string;
|
||||||
|
hallId: string;
|
||||||
|
startAt: string;
|
||||||
|
endAt: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateScreeningResponse {
|
||||||
|
ok: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetScreeningRequest {
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetScreeningResponse {
|
||||||
|
screening: Screening | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetScreeningsRequest {
|
||||||
|
theaterId?: string | undefined;
|
||||||
|
date?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetScreeningsResponse {
|
||||||
|
screenings: Screening[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetScreeningsByMovieRequest {
|
||||||
|
movieId: string;
|
||||||
|
date?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetScreeningsByMovieResponse {
|
||||||
|
screenings: Screening[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Screening {
|
||||||
|
id: string;
|
||||||
|
startAt: string;
|
||||||
|
endAt: string;
|
||||||
|
theater: Theater | undefined;
|
||||||
|
hall: Hall | undefined;
|
||||||
|
movie: Movie | undefined;
|
||||||
|
seatTypes: SeatType[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Movie {
|
||||||
|
id: string;
|
||||||
|
title: string;
|
||||||
|
slug: string;
|
||||||
|
duration: number;
|
||||||
|
banner: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Theater {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
adress: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Hall {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SeatType {
|
||||||
|
type: string;
|
||||||
|
price: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SCREENING_V1_PACKAGE_NAME = "screening.v1";
|
||||||
|
|
||||||
|
export interface ScreeningServiceClient {
|
||||||
|
createScreening(request: CreateScreeningRequest): Observable<CreateScreeningResponse>;
|
||||||
|
|
||||||
|
getScreening(request: GetScreeningRequest): Observable<GetScreeningResponse>;
|
||||||
|
|
||||||
|
getScreenings(request: GetScreeningsRequest): Observable<GetScreeningsResponse>;
|
||||||
|
|
||||||
|
getScreeningsByMovie(request: GetScreeningsByMovieRequest): Observable<GetScreeningsByMovieResponse>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ScreeningServiceController {
|
||||||
|
createScreening(
|
||||||
|
request: CreateScreeningRequest,
|
||||||
|
): Promise<CreateScreeningResponse> | Observable<CreateScreeningResponse> | CreateScreeningResponse;
|
||||||
|
|
||||||
|
getScreening(
|
||||||
|
request: GetScreeningRequest,
|
||||||
|
): Promise<GetScreeningResponse> | Observable<GetScreeningResponse> | GetScreeningResponse;
|
||||||
|
|
||||||
|
getScreenings(
|
||||||
|
request: GetScreeningsRequest,
|
||||||
|
): Promise<GetScreeningsResponse> | Observable<GetScreeningsResponse> | GetScreeningsResponse;
|
||||||
|
|
||||||
|
getScreeningsByMovie(
|
||||||
|
request: GetScreeningsByMovieRequest,
|
||||||
|
): Promise<GetScreeningsByMovieResponse> | Observable<GetScreeningsByMovieResponse> | GetScreeningsByMovieResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ScreeningServiceControllerMethods() {
|
||||||
|
return function (constructor: Function) {
|
||||||
|
const grpcMethods: string[] = ["createScreening", "getScreening", "getScreenings", "getScreeningsByMovie"];
|
||||||
|
for (const method of grpcMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcMethod("ScreeningService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
const grpcStreamMethods: string[] = [];
|
||||||
|
for (const method of grpcStreamMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcStreamMethod("ScreeningService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SCREENING_SERVICE_NAME = "ScreeningService";
|
||||||
71
gen/ts/seat.ts
Normal file
71
gen/ts/seat.ts
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.11.0
|
||||||
|
// protoc v6.33.4
|
||||||
|
// source: seat.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
||||||
|
import { Observable } from "rxjs";
|
||||||
|
|
||||||
|
export const protobufPackage = "seat.v1";
|
||||||
|
|
||||||
|
export interface GetSeatRequest {
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetSeatResponse {
|
||||||
|
seat: Seat | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ListSeatsByHallRequest {
|
||||||
|
hallId: string;
|
||||||
|
screeningId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ListSeatsByHallResponse {
|
||||||
|
seats: Seat[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Seat {
|
||||||
|
id: string;
|
||||||
|
row: number;
|
||||||
|
number: number;
|
||||||
|
price: number;
|
||||||
|
status: string;
|
||||||
|
type: string;
|
||||||
|
hallId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SEAT_V1_PACKAGE_NAME = "seat.v1";
|
||||||
|
|
||||||
|
export interface SeatServiceClient {
|
||||||
|
getSeat(request: GetSeatRequest): Observable<GetSeatResponse>;
|
||||||
|
|
||||||
|
listSeatsByHall(request: ListSeatsByHallRequest): Observable<ListSeatsByHallResponse>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SeatServiceController {
|
||||||
|
getSeat(request: GetSeatRequest): Promise<GetSeatResponse> | Observable<GetSeatResponse> | GetSeatResponse;
|
||||||
|
|
||||||
|
listSeatsByHall(
|
||||||
|
request: ListSeatsByHallRequest,
|
||||||
|
): Promise<ListSeatsByHallResponse> | Observable<ListSeatsByHallResponse> | ListSeatsByHallResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function SeatServiceControllerMethods() {
|
||||||
|
return function (constructor: Function) {
|
||||||
|
const grpcMethods: string[] = ["getSeat", "listSeatsByHall"];
|
||||||
|
for (const method of grpcMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcMethod("SeatService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
const grpcStreamMethods: string[] = [];
|
||||||
|
for (const method of grpcStreamMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcStreamMethod("SeatService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SEAT_SERVICE_NAME = "SeatService";
|
||||||
78
gen/ts/theater.ts
Normal file
78
gen/ts/theater.ts
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-ts_proto v2.11.0
|
||||||
|
// protoc v6.33.4
|
||||||
|
// source: theater.proto
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
||||||
|
import { Observable } from "rxjs";
|
||||||
|
import { Empty } from "./google/protobuf/empty";
|
||||||
|
|
||||||
|
export const protobufPackage = "theater.v1";
|
||||||
|
|
||||||
|
export interface ListTheaterResponse {
|
||||||
|
theaters: Theater[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetTheaterRequest {
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GetTheaterResponse {
|
||||||
|
theater: Theater | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateTheaterRequest {
|
||||||
|
name: string;
|
||||||
|
address: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateTheaterResponse {
|
||||||
|
theater: Theater | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Theater {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
address: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const THEATER_V1_PACKAGE_NAME = "theater.v1";
|
||||||
|
|
||||||
|
export interface TheaterServiceClient {
|
||||||
|
listTheater(request: Empty): Observable<ListTheaterResponse>;
|
||||||
|
|
||||||
|
getTheater(request: GetTheaterRequest): Observable<GetTheaterResponse>;
|
||||||
|
|
||||||
|
createTheater(request: CreateTheaterRequest): Observable<CreateTheaterResponse>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TheaterServiceController {
|
||||||
|
listTheater(request: Empty): Promise<ListTheaterResponse> | Observable<ListTheaterResponse> | ListTheaterResponse;
|
||||||
|
|
||||||
|
getTheater(
|
||||||
|
request: GetTheaterRequest,
|
||||||
|
): Promise<GetTheaterResponse> | Observable<GetTheaterResponse> | GetTheaterResponse;
|
||||||
|
|
||||||
|
createTheater(
|
||||||
|
request: CreateTheaterRequest,
|
||||||
|
): Promise<CreateTheaterResponse> | Observable<CreateTheaterResponse> | CreateTheaterResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function TheaterServiceControllerMethods() {
|
||||||
|
return function (constructor: Function) {
|
||||||
|
const grpcMethods: string[] = ["listTheater", "getTheater", "createTheater"];
|
||||||
|
for (const method of grpcMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcMethod("TheaterService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
const grpcStreamMethods: string[] = [];
|
||||||
|
for (const method of grpcStreamMethods) {
|
||||||
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
||||||
|
GrpcStreamMethod("TheaterService", method)(constructor.prototype[method], method, descriptor);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export const THEATER_SERVICE_NAME = "TheaterService";
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@teacinema/contracts",
|
"name": "@teacinema/contracts",
|
||||||
"version": "1.2.1",
|
"version": "1.6.0",
|
||||||
"description": "Protocol Buffers contracts for microservices",
|
"description": "Protocol Buffers contracts for microservices",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.build.json",
|
"build": "tsc -p tsconfig.build.json",
|
||||||
|
|||||||
48
proto/hall.proto
Normal file
48
proto/hall.proto
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package hall.v1;
|
||||||
|
|
||||||
|
service HallService {
|
||||||
|
rpc CreateHall (CreateHallRequest) returns (CreateHallResponse);
|
||||||
|
rpc GetHall (GetHallRequest) returns (GetHallResponse);
|
||||||
|
rpc ListHallsByTheater (ListHallsByTheaterRequest) returns (ListHallsByTheaterResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateHallRequest {
|
||||||
|
string name = 1;
|
||||||
|
string theater_id = 2;
|
||||||
|
repeated RowLayout layout = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateHallResponse {
|
||||||
|
Hall hall = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListHallsByTheaterRequest {
|
||||||
|
string theater_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListHallsByTheaterResponse {
|
||||||
|
repeated Hall halls = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetHallRequest {
|
||||||
|
string id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetHallResponse {
|
||||||
|
Hall hall = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Hall {
|
||||||
|
string id = 1;
|
||||||
|
string name = 2;
|
||||||
|
string theater_id = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message RowLayout {
|
||||||
|
int32 row = 1;
|
||||||
|
int32 columns = 2;
|
||||||
|
string type = 3;
|
||||||
|
int32 price = 4;
|
||||||
|
}
|
||||||
@ -35,8 +35,8 @@ message Movie {
|
|||||||
string title = 2;
|
string title = 2;
|
||||||
string slug = 3;
|
string slug = 3;
|
||||||
string poster = 4;
|
string poster = 4;
|
||||||
string rating_age = 5;
|
int32 rating_age = 5;
|
||||||
google.protobuf.Timestamp timestamp = 6;
|
google.protobuf.Timestamp release_date = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message MovieDetails {
|
message MovieDetails {
|
||||||
@ -47,7 +47,7 @@ message MovieDetails {
|
|||||||
string poster = 5;
|
string poster = 5;
|
||||||
string banner = 6;
|
string banner = 6;
|
||||||
int32 duration = 7;
|
int32 duration = 7;
|
||||||
string rating_age = 8;
|
int32 rating_age = 8;
|
||||||
string country = 9;
|
string country = 9;
|
||||||
google.protobuf.Timestamp timestamp = 10;
|
google.protobuf.Timestamp release_date = 10;
|
||||||
}
|
}
|
||||||
|
|||||||
39
proto/payment.proto
Normal file
39
proto/payment.proto
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package payment.v1;
|
||||||
|
|
||||||
|
service PaymentService {
|
||||||
|
rpc CreatePayment(CreatePaymentRequest) returns (CreatePaymentResponse);
|
||||||
|
rpc ProcessPaymentEvent (ProcessPaymentEventRequest) returns (ProcessPaymentEventResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreatePaymentRequest {
|
||||||
|
string user_id = 1;
|
||||||
|
string screening_id = 2;
|
||||||
|
repeated SeatInput seats = 3;
|
||||||
|
optional string payment_method_id = 4;
|
||||||
|
bool save_payment_method = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message CreatePaymentResponse {
|
||||||
|
string url = 1;
|
||||||
|
}
|
||||||
|
message ProcessPaymentEventRequest {
|
||||||
|
string event = 1;
|
||||||
|
string payment_id = 2;
|
||||||
|
string booking_id = 3;
|
||||||
|
string user_id = 4;
|
||||||
|
bool save_payment_method = 5;
|
||||||
|
string provider_payment_id = 6;
|
||||||
|
string card_first6 = 7;
|
||||||
|
string lat4 = 8;
|
||||||
|
}
|
||||||
|
message ProcessPaymentEventResponse {
|
||||||
|
bool ok = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SeatInput {
|
||||||
|
string seat_id = 1;
|
||||||
|
int32 price = 2;
|
||||||
|
}
|
||||||
79
proto/screening.proto
Normal file
79
proto/screening.proto
Normal file
@ -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;
|
||||||
|
}
|
||||||
33
proto/seat.proto
Normal file
33
proto/seat.proto
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package seat.v1;
|
||||||
|
|
||||||
|
service SeatService {
|
||||||
|
rpc GetSeat (GetSeatRequest) returns (GetSeatResponse);
|
||||||
|
rpc ListSeatsByHall (ListSeatsByHallRequest) returns (ListSeatsByHallResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetSeatRequest {
|
||||||
|
string id = 1;
|
||||||
|
}
|
||||||
|
message GetSeatResponse {
|
||||||
|
Seat seat = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListSeatsByHallRequest {
|
||||||
|
string hall_id = 1;
|
||||||
|
string screening_id = 2;
|
||||||
|
}
|
||||||
|
message ListSeatsByHallResponse {
|
||||||
|
repeated Seat seats = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Seat {
|
||||||
|
string id = 1;
|
||||||
|
int32 row = 2;
|
||||||
|
int32 number = 3;
|
||||||
|
int32 price = 4;
|
||||||
|
string status = 5;
|
||||||
|
string type = 6;
|
||||||
|
string hall_id = 7;
|
||||||
|
}
|
||||||
37
proto/theater.proto
Normal file
37
proto/theater.proto
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package theater.v1;
|
||||||
|
|
||||||
|
import "google/protobuf/empty.proto";
|
||||||
|
|
||||||
|
service TheaterService {
|
||||||
|
rpc ListTheater(google.protobuf.Empty) returns (ListTheaterResponse);
|
||||||
|
rpc GetTheater(GetTheaterRequest) returns (GetTheaterResponse);
|
||||||
|
rpc CreateTheater(CreateTheaterRequest) returns (CreateTheaterResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListTheaterResponse {
|
||||||
|
repeated Theater theaters = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetTheaterRequest {
|
||||||
|
string id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetTheaterResponse {
|
||||||
|
Theater theater = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateTheaterRequest {
|
||||||
|
string name = 1;
|
||||||
|
string address = 2;
|
||||||
|
}
|
||||||
|
message CreateTheaterResponse {
|
||||||
|
Theater theater = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Theater {
|
||||||
|
string id = 1;
|
||||||
|
string name = 2;
|
||||||
|
string address = 3;
|
||||||
|
}
|
||||||
@ -34,4 +34,14 @@ export const PROTO_PATHS = {
|
|||||||
MOVIE: join(__dirname, '../../proto/movie.proto'),
|
MOVIE: join(__dirname, '../../proto/movie.proto'),
|
||||||
/** Путь к `category.proto` (пакет `category.v1`) */
|
/** Путь к `category.proto` (пакет `category.v1`) */
|
||||||
CATEGORY: join(__dirname, '../../proto/category.proto'),
|
CATEGORY: join(__dirname, '../../proto/category.proto'),
|
||||||
|
/** Путь к `theater.proto` (пакет `theater.v1`) */
|
||||||
|
THEATER: join(__dirname, '../../proto/theater.proto'),
|
||||||
|
/** Путь к `hall.proto` (пакет `hall.v1`) */
|
||||||
|
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'),
|
||||||
|
/** Путь к `payment.proto` (пакет `payment.v1`) */
|
||||||
|
PAYMENT: join(__dirname, '../../proto/payment.proto'),
|
||||||
} as const
|
} as const
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user