@prodoctors/contracts 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,4 +8,5 @@ export declare const PROTO_PATHS: {
8
8
  readonly PURCHASE: string;
9
9
  readonly SALES: string;
10
10
  readonly SHIFT: string;
11
+ readonly RESERVATION: string;
11
12
  };
@@ -12,4 +12,5 @@ exports.PROTO_PATHS = {
12
12
  PURCHASE: (0, path_1.join)(__dirname, "../../proto/purchase.proto"),
13
13
  SALES: (0, path_1.join)(__dirname, "../../proto/sales.proto"),
14
14
  SHIFT: (0, path_1.join)(__dirname, "../../proto/shift.proto"),
15
+ RESERVATION: (0, path_1.join)(__dirname, "../../proto/reservation.proto"),
15
16
  };
@@ -0,0 +1,253 @@
1
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
+ // versions:
3
+ // protoc-gen-ts_proto v2.11.5
4
+ // protoc v7.34.0
5
+ // source: reservation.proto
6
+
7
+ /* eslint-disable */
8
+ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
9
+ import { Observable } from "rxjs";
10
+ import { IdRequest, PaginationMeta, PaginationRequest } from "./common";
11
+ import { Timestamp } from "./google/protobuf/timestamp";
12
+
13
+ export const protobufPackage = "reservation.v1";
14
+
15
+ export enum WebReservationStatus {
16
+ WEB_RESERVATION_STATUS_UNSPECIFIED = 0,
17
+ WEB_RESERVATION_STATUS_CREATED = 1,
18
+ WEB_RESERVATION_STATUS_CONFIRMED = 2,
19
+ WEB_RESERVATION_STATUS_READY = 3,
20
+ WEB_RESERVATION_STATUS_COMPLETED = 4,
21
+ WEB_RESERVATION_STATUS_CANCELLED = 5,
22
+ WEB_RESERVATION_STATUS_EXPIRED = 6,
23
+ UNRECOGNIZED = -1,
24
+ }
25
+
26
+ export enum WebOrderStatus {
27
+ WEB_ORDER_STATUS_UNSPECIFIED = 0,
28
+ WEB_ORDER_STATUS_CREATED = 1,
29
+ WEB_ORDER_STATUS_CONFIRMED = 2,
30
+ WEB_ORDER_STATUS_READY = 3,
31
+ WEB_ORDER_STATUS_COMPLETED = 4,
32
+ WEB_ORDER_STATUS_CANCELLED = 5,
33
+ WEB_ORDER_STATUS_EXPIRED = 6,
34
+ UNRECOGNIZED = -1,
35
+ }
36
+
37
+ export interface WebReservation {
38
+ id: string;
39
+ reservationNumber: string;
40
+ status: WebReservationStatus;
41
+ productId: string;
42
+ productBatchId: string;
43
+ branchId: string;
44
+ customerId?: string | undefined;
45
+ orderId?: string | undefined;
46
+ productName: string;
47
+ pharmacyName: string;
48
+ customerName: string;
49
+ phone: string;
50
+ comment?: string | undefined;
51
+ city?: string | undefined;
52
+ quantity: number;
53
+ unitPrice: string;
54
+ totalPrice: string;
55
+ source: string;
56
+ createdAt: Timestamp | undefined;
57
+ expiresAt: Timestamp | undefined;
58
+ updatedAt: Timestamp | undefined;
59
+ }
60
+
61
+ export interface CreateWebReservationRequest {
62
+ productId: string;
63
+ productBatchId: string;
64
+ branchId: string;
65
+ orderId?: string | undefined;
66
+ productName: string;
67
+ pharmacyName: string;
68
+ customerName: string;
69
+ phone: string;
70
+ comment?: string | undefined;
71
+ city?: string | undefined;
72
+ quantity: number;
73
+ unitPrice: string;
74
+ totalPrice: string;
75
+ source?: string | undefined;
76
+ }
77
+
78
+ export interface ListWebReservationsRequest {
79
+ pagination: PaginationRequest | undefined;
80
+ status?: WebReservationStatus | undefined;
81
+ branchId?: string | undefined;
82
+ phone?: string | undefined;
83
+ reservationNumber?: string | undefined;
84
+ orderId?: string | undefined;
85
+ }
86
+
87
+ export interface ListWebReservationsResponse {
88
+ items: WebReservation[];
89
+ meta: PaginationMeta | undefined;
90
+ }
91
+
92
+ export interface UpdateWebReservationStatusRequest {
93
+ id: string;
94
+ status: WebReservationStatus;
95
+ }
96
+
97
+ export interface WebOrderItem {
98
+ id: string;
99
+ reservationId: string;
100
+ productId: string;
101
+ productBatchId: string;
102
+ branchId: string;
103
+ productName: string;
104
+ pharmacyName: string;
105
+ quantity: number;
106
+ unitPrice: string;
107
+ totalPrice: string;
108
+ status: WebReservationStatus;
109
+ }
110
+
111
+ export interface WebOrder {
112
+ id: string;
113
+ orderNumber: string;
114
+ status: WebOrderStatus;
115
+ customerName: string;
116
+ phone: string;
117
+ comment?: string | undefined;
118
+ city?: string | undefined;
119
+ source: string;
120
+ totalItems: number;
121
+ totalPrice: string;
122
+ createdAt: Timestamp | undefined;
123
+ expiresAt: Timestamp | undefined;
124
+ updatedAt: Timestamp | undefined;
125
+ items: WebOrderItem[];
126
+ }
127
+
128
+ export interface CreateWebOrderItem {
129
+ productId: string;
130
+ productBatchId: string;
131
+ branchId: string;
132
+ productName: string;
133
+ pharmacyName: string;
134
+ quantity: number;
135
+ unitPrice: string;
136
+ totalPrice: string;
137
+ }
138
+
139
+ export interface CreateWebOrderRequest {
140
+ customerName: string;
141
+ phone: string;
142
+ comment?: string | undefined;
143
+ city?: string | undefined;
144
+ source?: string | undefined;
145
+ items: CreateWebOrderItem[];
146
+ }
147
+
148
+ export interface ListWebOrdersRequest {
149
+ pagination: PaginationRequest | undefined;
150
+ status?: WebOrderStatus | undefined;
151
+ phone?: string | undefined;
152
+ orderNumber?: string | undefined;
153
+ branchId?: string | undefined;
154
+ }
155
+
156
+ export interface ListWebOrdersResponse {
157
+ items: WebOrder[];
158
+ meta: PaginationMeta | undefined;
159
+ }
160
+
161
+ export interface UpdateWebOrderStatusRequest {
162
+ id: string;
163
+ status: WebOrderStatus;
164
+ }
165
+
166
+ export const RESERVATION_V1_PACKAGE_NAME = "reservation.v1";
167
+
168
+ export interface WebReservationServiceClient {
169
+ createWebReservation(request: CreateWebReservationRequest): Observable<WebReservation>;
170
+
171
+ getWebReservation(request: IdRequest): Observable<WebReservation>;
172
+
173
+ listWebReservations(request: ListWebReservationsRequest): Observable<ListWebReservationsResponse>;
174
+
175
+ updateWebReservationStatus(request: UpdateWebReservationStatusRequest): Observable<WebReservation>;
176
+ }
177
+
178
+ export interface WebReservationServiceController {
179
+ createWebReservation(
180
+ request: CreateWebReservationRequest,
181
+ ): Promise<WebReservation> | Observable<WebReservation> | WebReservation;
182
+
183
+ getWebReservation(request: IdRequest): Promise<WebReservation> | Observable<WebReservation> | WebReservation;
184
+
185
+ listWebReservations(
186
+ request: ListWebReservationsRequest,
187
+ ): Promise<ListWebReservationsResponse> | Observable<ListWebReservationsResponse> | ListWebReservationsResponse;
188
+
189
+ updateWebReservationStatus(
190
+ request: UpdateWebReservationStatusRequest,
191
+ ): Promise<WebReservation> | Observable<WebReservation> | WebReservation;
192
+ }
193
+
194
+ export function WebReservationServiceControllerMethods() {
195
+ return function (constructor: Function) {
196
+ const grpcMethods: string[] = [
197
+ "createWebReservation",
198
+ "getWebReservation",
199
+ "listWebReservations",
200
+ "updateWebReservationStatus",
201
+ ];
202
+ for (const method of grpcMethods) {
203
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
204
+ GrpcMethod("WebReservationService", method)(constructor.prototype[method], method, descriptor);
205
+ }
206
+ const grpcStreamMethods: string[] = [];
207
+ for (const method of grpcStreamMethods) {
208
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
209
+ GrpcStreamMethod("WebReservationService", method)(constructor.prototype[method], method, descriptor);
210
+ }
211
+ };
212
+ }
213
+
214
+ export const WEB_RESERVATION_SERVICE_NAME = "WebReservationService";
215
+
216
+ export interface WebOrderServiceClient {
217
+ createWebOrder(request: CreateWebOrderRequest): Observable<WebOrder>;
218
+
219
+ getWebOrder(request: IdRequest): Observable<WebOrder>;
220
+
221
+ listWebOrders(request: ListWebOrdersRequest): Observable<ListWebOrdersResponse>;
222
+
223
+ updateWebOrderStatus(request: UpdateWebOrderStatusRequest): Observable<WebOrder>;
224
+ }
225
+
226
+ export interface WebOrderServiceController {
227
+ createWebOrder(request: CreateWebOrderRequest): Promise<WebOrder> | Observable<WebOrder> | WebOrder;
228
+
229
+ getWebOrder(request: IdRequest): Promise<WebOrder> | Observable<WebOrder> | WebOrder;
230
+
231
+ listWebOrders(
232
+ request: ListWebOrdersRequest,
233
+ ): Promise<ListWebOrdersResponse> | Observable<ListWebOrdersResponse> | ListWebOrdersResponse;
234
+
235
+ updateWebOrderStatus(request: UpdateWebOrderStatusRequest): Promise<WebOrder> | Observable<WebOrder> | WebOrder;
236
+ }
237
+
238
+ export function WebOrderServiceControllerMethods() {
239
+ return function (constructor: Function) {
240
+ const grpcMethods: string[] = ["createWebOrder", "getWebOrder", "listWebOrders", "updateWebOrderStatus"];
241
+ for (const method of grpcMethods) {
242
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
243
+ GrpcMethod("WebOrderService", method)(constructor.prototype[method], method, descriptor);
244
+ }
245
+ const grpcStreamMethods: string[] = [];
246
+ for (const method of grpcStreamMethods) {
247
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
248
+ GrpcStreamMethod("WebOrderService", method)(constructor.prototype[method], method, descriptor);
249
+ }
250
+ };
251
+ }
252
+
253
+ export const WEB_ORDER_SERVICE_NAME = "WebOrderService";
package/gen/sales.ts CHANGED
@@ -221,6 +221,48 @@ export interface ListSaleOrdersResponse {
221
221
  meta: PaginationMeta | undefined;
222
222
  }
223
223
 
224
+ export interface CashierSalesSummaryRequest {
225
+ shiftId: string;
226
+ }
227
+
228
+ export interface CashierSalesPaymentSummary {
229
+ paymentMethod: PaymentMethod;
230
+ totalOrders: number;
231
+ totalAmount: string;
232
+ paidAmount: string;
233
+ changeAmount: string;
234
+ }
235
+
236
+ export interface CashierSalesProductSummary {
237
+ productId: string;
238
+ productName: string;
239
+ sku?: string | undefined;
240
+ totalQuantity: number;
241
+ totalBaseQuantity: number;
242
+ totalAmount: string;
243
+ }
244
+
245
+ export interface CashierSalesSummaryResponse {
246
+ shiftId: string;
247
+ branchId: string;
248
+ cashierId: string;
249
+ terminalId: string;
250
+ status: string;
251
+ openedAt: Timestamp | undefined;
252
+ closedAt?: Timestamp | undefined;
253
+ totalOrders: number;
254
+ totalQuantity: number;
255
+ totalBaseQuantity: number;
256
+ subtotal: string;
257
+ discountAmount: string;
258
+ taxAmount: string;
259
+ totalAmount: string;
260
+ paidAmount: string;
261
+ changeAmount: string;
262
+ paymentMethods: CashierSalesPaymentSummary[];
263
+ products: CashierSalesProductSummary[];
264
+ }
265
+
224
266
  export interface CreateSaleReturnItemInput {
225
267
  productId: string;
226
268
  productBatchId: string;
@@ -323,6 +365,8 @@ export interface SaleOrderServiceClient {
323
365
 
324
366
  listSaleOrders(request: ListSaleOrdersRequest): Observable<ListSaleOrdersResponse>;
325
367
 
368
+ getCashierSalesSummary(request: CashierSalesSummaryRequest): Observable<CashierSalesSummaryResponse>;
369
+
326
370
  deleteSaleOrder(request: IdRequest): Observable<BoolResponse>;
327
371
  }
328
372
 
@@ -337,6 +381,10 @@ export interface SaleOrderServiceController {
337
381
  request: ListSaleOrdersRequest,
338
382
  ): Promise<ListSaleOrdersResponse> | Observable<ListSaleOrdersResponse> | ListSaleOrdersResponse;
339
383
 
384
+ getCashierSalesSummary(
385
+ request: CashierSalesSummaryRequest,
386
+ ): Promise<CashierSalesSummaryResponse> | Observable<CashierSalesSummaryResponse> | CashierSalesSummaryResponse;
387
+
340
388
  deleteSaleOrder(request: IdRequest): Promise<BoolResponse> | Observable<BoolResponse> | BoolResponse;
341
389
  }
342
390
 
@@ -347,6 +395,7 @@ export function SaleOrderServiceControllerMethods() {
347
395
  "updateSaleOrder",
348
396
  "getSaleOrderById",
349
397
  "listSaleOrders",
398
+ "getCashierSalesSummary",
350
399
  "deleteSaleOrder",
351
400
  ];
352
401
  for (const method of grpcMethods) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prodoctors/contracts",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "Protobuf definitions and generated Typescript types for ProDoctors",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -0,0 +1,190 @@
1
+ syntax = "proto3";
2
+
3
+ package reservation.v1;
4
+
5
+ import "google/protobuf/timestamp.proto";
6
+ import "common.proto";
7
+
8
+ enum WebReservationStatus {
9
+ WEB_RESERVATION_STATUS_UNSPECIFIED = 0;
10
+ WEB_RESERVATION_STATUS_CREATED = 1;
11
+ WEB_RESERVATION_STATUS_CONFIRMED = 2;
12
+ WEB_RESERVATION_STATUS_READY = 3;
13
+ WEB_RESERVATION_STATUS_COMPLETED = 4;
14
+ WEB_RESERVATION_STATUS_CANCELLED = 5;
15
+ WEB_RESERVATION_STATUS_EXPIRED = 6;
16
+ }
17
+
18
+ enum WebOrderStatus {
19
+ WEB_ORDER_STATUS_UNSPECIFIED = 0;
20
+ WEB_ORDER_STATUS_CREATED = 1;
21
+ WEB_ORDER_STATUS_CONFIRMED = 2;
22
+ WEB_ORDER_STATUS_READY = 3;
23
+ WEB_ORDER_STATUS_COMPLETED = 4;
24
+ WEB_ORDER_STATUS_CANCELLED = 5;
25
+ WEB_ORDER_STATUS_EXPIRED = 6;
26
+ }
27
+
28
+ message WebReservation {
29
+ string id = 1;
30
+ string reservation_number = 2;
31
+ WebReservationStatus status = 3;
32
+
33
+ string product_id = 4;
34
+ string product_batch_id = 5;
35
+ string branch_id = 6;
36
+ optional string customer_id = 7;
37
+
38
+ optional string order_id = 8;
39
+
40
+ string product_name = 9;
41
+ string pharmacy_name = 10;
42
+
43
+ string customer_name = 11;
44
+ string phone = 12;
45
+ optional string comment = 13;
46
+ optional string city = 14;
47
+
48
+ int32 quantity = 15;
49
+ string unit_price = 16;
50
+ string total_price = 17;
51
+ string source = 18;
52
+
53
+ google.protobuf.Timestamp created_at = 19;
54
+ google.protobuf.Timestamp expires_at = 20;
55
+ google.protobuf.Timestamp updated_at = 21;
56
+ }
57
+
58
+ message CreateWebReservationRequest {
59
+ string product_id = 1;
60
+ string product_batch_id = 2;
61
+ string branch_id = 3;
62
+
63
+ optional string order_id = 4;
64
+
65
+ string product_name = 5;
66
+ string pharmacy_name = 6;
67
+
68
+ string customer_name = 7;
69
+ string phone = 8;
70
+ optional string comment = 9;
71
+ optional string city = 10;
72
+
73
+ int32 quantity = 11;
74
+ string unit_price = 12;
75
+ string total_price = 13;
76
+ optional string source = 14;
77
+ }
78
+
79
+ message ListWebReservationsRequest {
80
+ common.v1.PaginationRequest pagination = 1;
81
+ optional WebReservationStatus status = 2;
82
+ optional string branch_id = 3;
83
+ optional string phone = 4;
84
+ optional string reservation_number = 5;
85
+ optional string order_id = 6;
86
+ }
87
+
88
+ message ListWebReservationsResponse {
89
+ repeated WebReservation items = 1;
90
+ common.v1.PaginationMeta meta = 2;
91
+ }
92
+
93
+ message UpdateWebReservationStatusRequest {
94
+ string id = 1;
95
+ WebReservationStatus status = 2;
96
+ }
97
+
98
+ message WebOrderItem {
99
+ string id = 1;
100
+ string reservation_id = 2;
101
+
102
+ string product_id = 3;
103
+ string product_batch_id = 4;
104
+ string branch_id = 5;
105
+
106
+ string product_name = 6;
107
+ string pharmacy_name = 7;
108
+
109
+ int32 quantity = 8;
110
+ string unit_price = 9;
111
+ string total_price = 10;
112
+
113
+ WebReservationStatus status = 11;
114
+ }
115
+
116
+ message WebOrder {
117
+ string id = 1;
118
+ string order_number = 2;
119
+ WebOrderStatus status = 3;
120
+
121
+ string customer_name = 4;
122
+ string phone = 5;
123
+ optional string comment = 6;
124
+ optional string city = 7;
125
+
126
+ string source = 8;
127
+ int32 total_items = 9;
128
+ string total_price = 10;
129
+
130
+ google.protobuf.Timestamp created_at = 11;
131
+ google.protobuf.Timestamp expires_at = 12;
132
+ google.protobuf.Timestamp updated_at = 13;
133
+
134
+ repeated WebOrderItem items = 14;
135
+ }
136
+
137
+ message CreateWebOrderItem {
138
+ string product_id = 1;
139
+ string product_batch_id = 2;
140
+ string branch_id = 3;
141
+
142
+ string product_name = 4;
143
+ string pharmacy_name = 5;
144
+
145
+ int32 quantity = 6;
146
+ string unit_price = 7;
147
+ string total_price = 8;
148
+ }
149
+
150
+ message CreateWebOrderRequest {
151
+ string customer_name = 1;
152
+ string phone = 2;
153
+ optional string comment = 3;
154
+ optional string city = 4;
155
+ optional string source = 5;
156
+
157
+ repeated CreateWebOrderItem items = 6;
158
+ }
159
+
160
+ message ListWebOrdersRequest {
161
+ common.v1.PaginationRequest pagination = 1;
162
+ optional WebOrderStatus status = 2;
163
+ optional string phone = 3;
164
+ optional string order_number = 4;
165
+ optional string branch_id = 5;
166
+ }
167
+
168
+ message ListWebOrdersResponse {
169
+ repeated WebOrder items = 1;
170
+ common.v1.PaginationMeta meta = 2;
171
+ }
172
+
173
+ message UpdateWebOrderStatusRequest {
174
+ string id = 1;
175
+ WebOrderStatus status = 2;
176
+ }
177
+
178
+ service WebReservationService {
179
+ rpc CreateWebReservation(CreateWebReservationRequest) returns (WebReservation);
180
+ rpc GetWebReservation(common.v1.IdRequest) returns (WebReservation);
181
+ rpc ListWebReservations(ListWebReservationsRequest) returns (ListWebReservationsResponse);
182
+ rpc UpdateWebReservationStatus(UpdateWebReservationStatusRequest) returns (WebReservation);
183
+ }
184
+
185
+ service WebOrderService {
186
+ rpc CreateWebOrder(CreateWebOrderRequest) returns (WebOrder);
187
+ rpc GetWebOrder(common.v1.IdRequest) returns (WebOrder);
188
+ rpc ListWebOrders(ListWebOrdersRequest) returns (ListWebOrdersResponse);
189
+ rpc UpdateWebOrderStatus(UpdateWebOrderStatusRequest) returns (WebOrder);
190
+ }
package/proto/sales.proto CHANGED
@@ -210,6 +210,48 @@ message ListSaleOrdersResponse {
210
210
  common.v1.PaginationMeta meta = 2;
211
211
  }
212
212
 
213
+ message CashierSalesSummaryRequest {
214
+ string shift_id = 1;
215
+ }
216
+
217
+ message CashierSalesPaymentSummary {
218
+ PaymentMethod payment_method = 1;
219
+ int32 total_orders = 2;
220
+ string total_amount = 3;
221
+ string paid_amount = 4;
222
+ string change_amount = 5;
223
+ }
224
+
225
+ message CashierSalesProductSummary {
226
+ string product_id = 1;
227
+ string product_name = 2;
228
+ optional string sku = 3;
229
+ int32 total_quantity = 4;
230
+ int32 total_base_quantity = 5;
231
+ string total_amount = 6;
232
+ }
233
+
234
+ message CashierSalesSummaryResponse {
235
+ string shift_id = 1;
236
+ string branch_id = 2;
237
+ string cashier_id = 3;
238
+ string terminal_id = 4;
239
+ string status = 5;
240
+ google.protobuf.Timestamp opened_at = 6;
241
+ optional google.protobuf.Timestamp closed_at = 7;
242
+ int32 total_orders = 8;
243
+ int32 total_quantity = 9;
244
+ int32 total_base_quantity = 10;
245
+ string subtotal = 11;
246
+ string discount_amount = 12;
247
+ string tax_amount = 13;
248
+ string total_amount = 14;
249
+ string paid_amount = 15;
250
+ string change_amount = 16;
251
+ repeated CashierSalesPaymentSummary payment_methods = 17;
252
+ repeated CashierSalesProductSummary products = 18;
253
+ }
254
+
213
255
  message CreateSaleReturnItemInput {
214
256
  string product_id = 1;
215
257
  string product_batch_id = 2;
@@ -306,6 +348,7 @@ service SaleOrderService {
306
348
  rpc UpdateSaleOrder(UpdateSaleOrderRequest) returns (SaleOrder);
307
349
  rpc GetSaleOrderById(common.v1.IdRequest) returns (SaleOrder);
308
350
  rpc ListSaleOrders(ListSaleOrdersRequest) returns (ListSaleOrdersResponse);
351
+ rpc GetCashierSalesSummary(CashierSalesSummaryRequest) returns (CashierSalesSummaryResponse);
309
352
  rpc DeleteSaleOrder(common.v1.IdRequest) returns (common.v1.BoolResponse);
310
353
  }
311
354