@mamindom/contracts 1.0.212 → 1.0.213

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.
@@ -1,5 +1,11 @@
1
1
  import { Observable } from "rxjs";
2
2
  export declare const protobufPackage = "crm.v1";
3
+ export interface GetCalculationModeRequest {
4
+ }
5
+ export interface GetCalculationModeResponse {
6
+ /** true — джерело правди щодо акцій це CRM. */
7
+ crmPromotions: boolean;
8
+ }
3
9
  export interface CrmCalculationItem {
4
10
  productId: string;
5
11
  variantId: string;
@@ -56,6 +62,14 @@ export interface CalculateCartResponse {
56
62
  crmCommentId: string;
57
63
  rawResult: string;
58
64
  durationMs: number;
65
+ /**
66
+ * Чому підсумок узяли НЕ з CRM. Порожнє — узяли з CRM.
67
+ *
68
+ * Без цього поля «CRM не порахувала» виглядало точно так само, як «у CRM
69
+ * немає акцій»: кошик показував локальний розрахунок під міткою PLANFIX, і
70
+ * менеджер не мав жодного способу відрізнити ці випадки.
71
+ */
72
+ fallbackReason: string;
59
73
  }
60
74
  export interface ReserveBonusesRequest {
61
75
  userId: string;
@@ -105,6 +119,13 @@ export interface CrmCalculationServiceClient {
105
119
  reserveBonuses(request: ReserveBonusesRequest): Observable<ReserveBonusesResponse>;
106
120
  releaseBonusReserve(request: ReleaseBonusReserveRequest): Observable<ReleaseBonusReserveResponse>;
107
121
  getCustomerProfile(request: GetCustomerProfileRequest): Observable<GetCustomerProfileResponse>;
122
+ /**
123
+ * Чи рахує акції CRM. Кошику це потрібно, щоб не показувати ВЛАСНІ
124
+ * автоакції поверх тих, які потім перерахує CRM: інакше клієнт бачить одну
125
+ * знижку в кошику й іншу на чекауті, а менеджер — «акція є в CRM, а сайт її
126
+ * не бачить».
127
+ */
128
+ getCalculationMode(request: GetCalculationModeRequest): Observable<GetCalculationModeResponse>;
108
129
  }
109
130
  export interface CrmCalculationServiceController {
110
131
  calculateCart(request: CalculateCartRequest): Promise<CalculateCartResponse> | Observable<CalculateCartResponse> | CalculateCartResponse;
@@ -112,6 +133,13 @@ export interface CrmCalculationServiceController {
112
133
  reserveBonuses(request: ReserveBonusesRequest): Promise<ReserveBonusesResponse> | Observable<ReserveBonusesResponse> | ReserveBonusesResponse;
113
134
  releaseBonusReserve(request: ReleaseBonusReserveRequest): Promise<ReleaseBonusReserveResponse> | Observable<ReleaseBonusReserveResponse> | ReleaseBonusReserveResponse;
114
135
  getCustomerProfile(request: GetCustomerProfileRequest): Promise<GetCustomerProfileResponse> | Observable<GetCustomerProfileResponse> | GetCustomerProfileResponse;
136
+ /**
137
+ * Чи рахує акції CRM. Кошику це потрібно, щоб не показувати ВЛАСНІ
138
+ * автоакції поверх тих, які потім перерахує CRM: інакше клієнт бачить одну
139
+ * знижку в кошику й іншу на чекауті, а менеджер — «акція є в CRM, а сайт її
140
+ * не бачить».
141
+ */
142
+ getCalculationMode(request: GetCalculationModeRequest): Promise<GetCalculationModeResponse> | Observable<GetCalculationModeResponse> | GetCalculationModeResponse;
115
143
  }
116
144
  export declare function CrmCalculationServiceControllerMethods(): (constructor: Function) => void;
117
145
  export declare const CRM_CALCULATION_SERVICE_NAME = "CrmCalculationService";
@@ -19,6 +19,7 @@ function CrmCalculationServiceControllerMethods() {
19
19
  "reserveBonuses",
20
20
  "releaseBonusReserve",
21
21
  "getCustomerProfile",
22
+ "getCalculationMode",
22
23
  ];
23
24
  for (const method of grpcMethods) {
24
25
  const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
@@ -11,6 +11,19 @@ service CrmCalculationService {
11
11
  rpc ReleaseBonusReserve(ReleaseBonusReserveRequest) returns (ReleaseBonusReserveResponse);
12
12
 
13
13
  rpc GetCustomerProfile(GetCustomerProfileRequest) returns (GetCustomerProfileResponse);
14
+
15
+ // Чи рахує акції CRM. Кошику це потрібно, щоб не показувати ВЛАСНІ
16
+ // автоакції поверх тих, які потім перерахує CRM: інакше клієнт бачить одну
17
+ // знижку в кошику й іншу на чекауті, а менеджер — «акція є в CRM, а сайт її
18
+ // не бачить».
19
+ rpc GetCalculationMode(GetCalculationModeRequest) returns (GetCalculationModeResponse);
20
+ }
21
+
22
+ message GetCalculationModeRequest {}
23
+
24
+ message GetCalculationModeResponse {
25
+ // true — джерело правди щодо акцій це CRM.
26
+ bool crm_promotions = 1;
14
27
  }
15
28
 
16
29
  message CrmCalculationItem {
@@ -83,6 +96,13 @@ message CalculateCartResponse {
83
96
  string raw_result = 15;
84
97
 
85
98
  int32 duration_ms = 16;
99
+
100
+ // Чому підсумок узяли НЕ з CRM. Порожнє — узяли з CRM.
101
+ //
102
+ // Без цього поля «CRM не порахувала» виглядало точно так само, як «у CRM
103
+ // немає акцій»: кошик показував локальний розрахунок під міткою PLANFIX, і
104
+ // менеджер не мав жодного способу відрізнити ці випадки.
105
+ string fallback_reason = 17;
86
106
  }
87
107
 
88
108
  message ReserveBonusesRequest {
@@ -10,6 +10,14 @@ import { Observable } from "rxjs";
10
10
 
11
11
  export const protobufPackage = "crm.v1";
12
12
 
13
+ export interface GetCalculationModeRequest {
14
+ }
15
+
16
+ export interface GetCalculationModeResponse {
17
+ /** true — джерело правди щодо акцій це CRM. */
18
+ crmPromotions: boolean;
19
+ }
20
+
13
21
  export interface CrmCalculationItem {
14
22
  productId: string;
15
23
  variantId: string;
@@ -71,6 +79,14 @@ export interface CalculateCartResponse {
71
79
  crmCommentId: string;
72
80
  rawResult: string;
73
81
  durationMs: number;
82
+ /**
83
+ * Чому підсумок узяли НЕ з CRM. Порожнє — узяли з CRM.
84
+ *
85
+ * Без цього поля «CRM не порахувала» виглядало точно так само, як «у CRM
86
+ * немає акцій»: кошик показував локальний розрахунок під міткою PLANFIX, і
87
+ * менеджер не мав жодного способу відрізнити ці випадки.
88
+ */
89
+ fallbackReason: string;
74
90
  }
75
91
 
76
92
  export interface ReserveBonusesRequest {
@@ -134,6 +150,15 @@ export interface CrmCalculationServiceClient {
134
150
  releaseBonusReserve(request: ReleaseBonusReserveRequest): Observable<ReleaseBonusReserveResponse>;
135
151
 
136
152
  getCustomerProfile(request: GetCustomerProfileRequest): Observable<GetCustomerProfileResponse>;
153
+
154
+ /**
155
+ * Чи рахує акції CRM. Кошику це потрібно, щоб не показувати ВЛАСНІ
156
+ * автоакції поверх тих, які потім перерахує CRM: інакше клієнт бачить одну
157
+ * знижку в кошику й іншу на чекауті, а менеджер — «акція є в CRM, а сайт її
158
+ * не бачить».
159
+ */
160
+
161
+ getCalculationMode(request: GetCalculationModeRequest): Observable<GetCalculationModeResponse>;
137
162
  }
138
163
 
139
164
  export interface CrmCalculationServiceController {
@@ -156,6 +181,17 @@ export interface CrmCalculationServiceController {
156
181
  getCustomerProfile(
157
182
  request: GetCustomerProfileRequest,
158
183
  ): Promise<GetCustomerProfileResponse> | Observable<GetCustomerProfileResponse> | GetCustomerProfileResponse;
184
+
185
+ /**
186
+ * Чи рахує акції CRM. Кошику це потрібно, щоб не показувати ВЛАСНІ
187
+ * автоакції поверх тих, які потім перерахує CRM: інакше клієнт бачить одну
188
+ * знижку в кошику й іншу на чекауті, а менеджер — «акція є в CRM, а сайт її
189
+ * не бачить».
190
+ */
191
+
192
+ getCalculationMode(
193
+ request: GetCalculationModeRequest,
194
+ ): Promise<GetCalculationModeResponse> | Observable<GetCalculationModeResponse> | GetCalculationModeResponse;
159
195
  }
160
196
 
161
197
  export function CrmCalculationServiceControllerMethods() {
@@ -166,6 +202,7 @@ export function CrmCalculationServiceControllerMethods() {
166
202
  "reserveBonuses",
167
203
  "releaseBonusReserve",
168
204
  "getCustomerProfile",
205
+ "getCalculationMode",
169
206
  ];
170
207
  for (const method of grpcMethods) {
171
208
  const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mamindom/contracts",
3
3
  "description": "proto",
4
- "version": "1.0.212",
4
+ "version": "1.0.213",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "exports": {
@@ -44,4 +44,4 @@
44
44
  "@types/node": "^25.3.5",
45
45
  "typescript": "^5.9.3"
46
46
  }
47
- }
47
+ }
@@ -11,6 +11,19 @@ service CrmCalculationService {
11
11
  rpc ReleaseBonusReserve(ReleaseBonusReserveRequest) returns (ReleaseBonusReserveResponse);
12
12
 
13
13
  rpc GetCustomerProfile(GetCustomerProfileRequest) returns (GetCustomerProfileResponse);
14
+
15
+ // Чи рахує акції CRM. Кошику це потрібно, щоб не показувати ВЛАСНІ
16
+ // автоакції поверх тих, які потім перерахує CRM: інакше клієнт бачить одну
17
+ // знижку в кошику й іншу на чекауті, а менеджер — «акція є в CRM, а сайт її
18
+ // не бачить».
19
+ rpc GetCalculationMode(GetCalculationModeRequest) returns (GetCalculationModeResponse);
20
+ }
21
+
22
+ message GetCalculationModeRequest {}
23
+
24
+ message GetCalculationModeResponse {
25
+ // true — джерело правди щодо акцій це CRM.
26
+ bool crm_promotions = 1;
14
27
  }
15
28
 
16
29
  message CrmCalculationItem {
@@ -83,6 +96,13 @@ message CalculateCartResponse {
83
96
  string raw_result = 15;
84
97
 
85
98
  int32 duration_ms = 16;
99
+
100
+ // Чому підсумок узяли НЕ з CRM. Порожнє — узяли з CRM.
101
+ //
102
+ // Без цього поля «CRM не порахувала» виглядало точно так само, як «у CRM
103
+ // немає акцій»: кошик показував локальний розрахунок під міткою PLANFIX, і
104
+ // менеджер не мав жодного способу відрізнити ці випадки.
105
+ string fallback_reason = 17;
86
106
  }
87
107
 
88
108
  message ReserveBonusesRequest {