@mamindom/contracts 1.0.193 → 1.0.201

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.
Files changed (75) hide show
  1. package/dist/events/auth/user-authenticated.interface.d.ts +2 -0
  2. package/dist/events/orders/index.d.ts +1 -0
  3. package/dist/events/orders/index.js +1 -0
  4. package/dist/events/orders/order-side-effects.interface.d.ts +67 -0
  5. package/dist/events/orders/order-side-effects.interface.js +2 -0
  6. package/dist/gen/banner.d.ts +18 -27
  7. package/dist/gen/calculation.d.ts +21 -10
  8. package/dist/gen/calculation.js +1 -1
  9. package/dist/gen/cart.d.ts +31 -0
  10. package/dist/gen/cart.js +1 -0
  11. package/dist/gen/category.d.ts +1 -0
  12. package/dist/gen/coupon.d.ts +1 -0
  13. package/dist/gen/delivery_settings.d.ts +0 -3
  14. package/dist/gen/notification.d.ts +75 -2
  15. package/dist/gen/notification.js +34 -1
  16. package/dist/gen/order.d.ts +29 -1
  17. package/dist/gen/order.js +1 -0
  18. package/dist/gen/payment.d.ts +30 -4
  19. package/dist/gen/payment.js +3 -0
  20. package/dist/gen/post.d.ts +3 -0
  21. package/dist/gen/post_comment.d.ts +1 -0
  22. package/dist/gen/product.d.ts +21 -13
  23. package/dist/gen/promotion.d.ts +2 -0
  24. package/dist/gen/shop_filters.d.ts +0 -1
  25. package/dist/gen/site_settings.d.ts +2 -0
  26. package/dist/proto/banner.proto +8 -29
  27. package/dist/proto/calculation.proto +39 -8
  28. package/dist/proto/cart.proto +47 -0
  29. package/dist/proto/category.proto +1 -0
  30. package/dist/proto/coupon.proto +3 -0
  31. package/dist/proto/delivery_settings.proto +3 -3
  32. package/dist/proto/notification.proto +84 -2
  33. package/dist/proto/order.proto +43 -1
  34. package/dist/proto/payment.proto +49 -2
  35. package/dist/proto/post.proto +5 -0
  36. package/dist/proto/post_comment.proto +5 -2
  37. package/dist/proto/product.proto +12 -11
  38. package/dist/proto/promotion.proto +4 -0
  39. package/dist/proto/shop_filters.proto +1 -1
  40. package/dist/proto/site_settings.proto +4 -0
  41. package/events/auth/otp-requested.interface.ts +3 -4
  42. package/events/auth/user-authenticated.interface.ts +3 -0
  43. package/events/orders/index.ts +1 -0
  44. package/events/orders/order-side-effects.interface.ts +82 -0
  45. package/gen/banner.ts +16 -29
  46. package/gen/calculation.ts +26 -14
  47. package/gen/cart.ts +38 -0
  48. package/gen/category.ts +1 -0
  49. package/gen/coupon.ts +1 -0
  50. package/gen/delivery_settings.ts +0 -3
  51. package/gen/notification.ts +136 -2
  52. package/gen/order.ts +38 -1
  53. package/gen/payment.ts +49 -4
  54. package/gen/post.ts +3 -0
  55. package/gen/post_comment.ts +1 -0
  56. package/gen/product.ts +19 -16
  57. package/gen/promotion.ts +2 -0
  58. package/gen/shop_filters.ts +1 -4
  59. package/gen/site_settings.ts +2 -0
  60. package/package.json +1 -1
  61. package/proto/banner.proto +8 -29
  62. package/proto/calculation.proto +39 -8
  63. package/proto/cart.proto +47 -0
  64. package/proto/category.proto +1 -0
  65. package/proto/coupon.proto +3 -0
  66. package/proto/delivery_settings.proto +3 -3
  67. package/proto/notification.proto +84 -2
  68. package/proto/order.proto +43 -1
  69. package/proto/payment.proto +49 -2
  70. package/proto/post.proto +5 -0
  71. package/proto/post_comment.proto +5 -2
  72. package/proto/product.proto +12 -11
  73. package/proto/promotion.proto +4 -0
  74. package/proto/shop_filters.proto +1 -1
  75. package/proto/site_settings.proto +4 -0
@@ -14,7 +14,6 @@ export interface DeliverySettingsResponse {
14
14
  defaultItemWeightKg: number;
15
15
  freeShippingThreshold: number;
16
16
  defaultDeclaredValue: number;
17
- npSenderWarehouseRef?: string | undefined;
18
17
  updatedAt: string;
19
18
  }
20
19
 
@@ -25,8 +24,6 @@ export interface UpdateDeliverySettingsRequest {
25
24
  defaultItemWeightKg?: number | undefined;
26
25
  freeShippingThreshold?: number | undefined;
27
26
  defaultDeclaredValue?: number | undefined;
28
- npSenderWarehouseRef?: string | undefined;
29
- clearNpSenderWarehouseRef: boolean;
30
27
  }
31
28
 
32
29
  export interface ListCarriersRequest {
@@ -28,6 +28,7 @@ export enum CampaignRecipientStatusEnum {
28
28
  RECIPIENT_FAILED = 3,
29
29
  RECIPIENT_SKIPPED_OPT_OUT = 4,
30
30
  RECIPIENT_SKIPPED_NO_CONTACT = 5,
31
+ RECIPIENT_SENDING = 6,
31
32
  UNRECOGNIZED = -1,
32
33
  }
33
34
 
@@ -98,6 +99,66 @@ export interface SendToCustomerResponse {
98
99
  logId: string;
99
100
  }
100
101
 
102
+ export interface NewsletterSubscribeRequest {
103
+ email: string;
104
+ locale?: string | undefined;
105
+ source?: string | undefined;
106
+ }
107
+
108
+ export interface NewsletterSubscribeResponse {
109
+ ok: boolean;
110
+ errorMessage: string;
111
+ alreadySubscribed: boolean;
112
+ }
113
+
114
+ export interface ListNewsletterSubscribersRequest {
115
+ page: number;
116
+ limit: number;
117
+ search?: string | undefined;
118
+ active?: boolean | undefined;
119
+ }
120
+
121
+ export interface NewsletterSubscriberItem {
122
+ id: string;
123
+ email: string;
124
+ locale: string;
125
+ source: string;
126
+ active: boolean;
127
+ createdAt: string;
128
+ unsubscribedAt?: string | undefined;
129
+ }
130
+
131
+ export interface ListNewsletterSubscribersResponse {
132
+ items: NewsletterSubscriberItem[];
133
+ total: number;
134
+ page: number;
135
+ limit: number;
136
+ activeTotal: number;
137
+ }
138
+
139
+ export interface VerifyUnsubscribeTokenRequest {
140
+ token: string;
141
+ }
142
+
143
+ export interface VerifyUnsubscribeTokenResponse {
144
+ ok: boolean;
145
+ errorMessage: string;
146
+ email?: string | undefined;
147
+ userId?: string | undefined;
148
+ unsubscribedFrom: string[];
149
+ }
150
+
151
+ export interface ApplyUnsubscribeRequest {
152
+ token: string;
153
+ categories: string[];
154
+ }
155
+
156
+ export interface ApplyUnsubscribeResponse {
157
+ ok: boolean;
158
+ errorMessage: string;
159
+ categories: string[];
160
+ }
161
+
101
162
  export interface EnqueueRecipientsRequest {
102
163
  campaignId: string;
103
164
  recipients: CampaignResolvedRecipient[];
@@ -327,6 +388,7 @@ export interface UpsertTemplateRequest {
327
388
  bodyText: string;
328
389
  variablesJson: string;
329
390
  isActive: boolean;
391
+ actorId?: string | undefined;
330
392
  }
331
393
 
332
394
  export interface UpdateTemplateRequest {
@@ -334,8 +396,8 @@ export interface UpdateTemplateRequest {
334
396
  title?: string | undefined;
335
397
  subject?: string | undefined;
336
398
  contentJson?: string | undefined;
337
- bodyHtml: string;
338
- bodyText: string;
399
+ bodyHtml?: string | undefined;
400
+ bodyText?: string | undefined;
339
401
  variablesJson?: string | undefined;
340
402
  isActive?: boolean | undefined;
341
403
  actorId?: string | undefined;
@@ -597,6 +659,78 @@ export function NotificationLogsServiceControllerMethods() {
597
659
 
598
660
  export const NOTIFICATION_LOGS_SERVICE_NAME = "NotificationLogsService";
599
661
 
662
+ export interface NotificationConsentServiceClient {
663
+ verifyUnsubscribeToken(request: VerifyUnsubscribeTokenRequest): Observable<VerifyUnsubscribeTokenResponse>;
664
+
665
+ applyUnsubscribe(request: ApplyUnsubscribeRequest): Observable<ApplyUnsubscribeResponse>;
666
+ }
667
+
668
+ export interface NotificationConsentServiceController {
669
+ verifyUnsubscribeToken(
670
+ request: VerifyUnsubscribeTokenRequest,
671
+ ):
672
+ | Promise<VerifyUnsubscribeTokenResponse>
673
+ | Observable<VerifyUnsubscribeTokenResponse>
674
+ | VerifyUnsubscribeTokenResponse;
675
+
676
+ applyUnsubscribe(
677
+ request: ApplyUnsubscribeRequest,
678
+ ): Promise<ApplyUnsubscribeResponse> | Observable<ApplyUnsubscribeResponse> | ApplyUnsubscribeResponse;
679
+ }
680
+
681
+ export function NotificationConsentServiceControllerMethods() {
682
+ return function (constructor: Function) {
683
+ const grpcMethods: string[] = ["verifyUnsubscribeToken", "applyUnsubscribe"];
684
+ for (const method of grpcMethods) {
685
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
686
+ GrpcMethod("NotificationConsentService", method)(constructor.prototype[method], method, descriptor);
687
+ }
688
+ const grpcStreamMethods: string[] = [];
689
+ for (const method of grpcStreamMethods) {
690
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
691
+ GrpcStreamMethod("NotificationConsentService", method)(constructor.prototype[method], method, descriptor);
692
+ }
693
+ };
694
+ }
695
+
696
+ export const NOTIFICATION_CONSENT_SERVICE_NAME = "NotificationConsentService";
697
+
698
+ export interface NewsletterServiceClient {
699
+ subscribe(request: NewsletterSubscribeRequest): Observable<NewsletterSubscribeResponse>;
700
+
701
+ listSubscribers(request: ListNewsletterSubscribersRequest): Observable<ListNewsletterSubscribersResponse>;
702
+ }
703
+
704
+ export interface NewsletterServiceController {
705
+ subscribe(
706
+ request: NewsletterSubscribeRequest,
707
+ ): Promise<NewsletterSubscribeResponse> | Observable<NewsletterSubscribeResponse> | NewsletterSubscribeResponse;
708
+
709
+ listSubscribers(
710
+ request: ListNewsletterSubscribersRequest,
711
+ ):
712
+ | Promise<ListNewsletterSubscribersResponse>
713
+ | Observable<ListNewsletterSubscribersResponse>
714
+ | ListNewsletterSubscribersResponse;
715
+ }
716
+
717
+ export function NewsletterServiceControllerMethods() {
718
+ return function (constructor: Function) {
719
+ const grpcMethods: string[] = ["subscribe", "listSubscribers"];
720
+ for (const method of grpcMethods) {
721
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
722
+ GrpcMethod("NewsletterService", method)(constructor.prototype[method], method, descriptor);
723
+ }
724
+ const grpcStreamMethods: string[] = [];
725
+ for (const method of grpcStreamMethods) {
726
+ const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
727
+ GrpcStreamMethod("NewsletterService", method)(constructor.prototype[method], method, descriptor);
728
+ }
729
+ };
730
+ }
731
+
732
+ export const NEWSLETTER_SERVICE_NAME = "NewsletterService";
733
+
600
734
  export interface TelegramChatsServiceClient {
601
735
  listChats(request: ListChatsRequest): Observable<ListChatsResponse>;
602
736
 
package/gen/order.ts CHANGED
@@ -212,7 +212,7 @@ export interface Order {
212
212
  delivery: OrderDelivery | undefined;
213
213
  payment: OrderPayment | undefined;
214
214
  totals: OrderTotals | undefined;
215
- promoCode: string;
215
+ promoCodes: string[];
216
216
  certificateCode: string;
217
217
  doNotCall: boolean;
218
218
  comment: string;
@@ -368,6 +368,28 @@ export interface EditItemsRequest {
368
368
  id: string;
369
369
  items: OrderItemInput[];
370
370
  actorId: string;
371
+ acceptDiscountChange: boolean;
372
+ }
373
+
374
+ export interface PreviewRecalculationRequest {
375
+ id: string;
376
+ items: OrderItemInput[];
377
+ }
378
+
379
+ export interface DiscountChange {
380
+ kind: string;
381
+ name: string;
382
+ before: number;
383
+ after: number;
384
+ }
385
+
386
+ export interface PreviewRecalculationResponse {
387
+ ok: boolean;
388
+ errorMessage: string;
389
+ before: OrderTotals | undefined;
390
+ after: OrderTotals | undefined;
391
+ discountChanges: DiscountChange[];
392
+ discountsDecreased: boolean;
371
393
  }
372
394
 
373
395
  export interface ApplyRecalculationRequest {
@@ -381,6 +403,7 @@ export interface ApplyRecalculationRequest {
381
403
  bonusesUsed: number;
382
404
  shippingCost: number;
383
405
  grandTotal: number;
406
+ idempotencyKey: string;
384
407
  }
385
408
 
386
409
  export interface SetTrackingNumberRequest {
@@ -395,12 +418,19 @@ export interface ReorderOrderRequest {
395
418
  userId: string;
396
419
  }
397
420
 
421
+ export interface ReorderSkippedItem {
422
+ productId: string;
423
+ variantId: string;
424
+ reason: string;
425
+ }
426
+
398
427
  export interface ReorderResponse {
399
428
  ok: boolean;
400
429
  cartId: string;
401
430
  added: number;
402
431
  skipped: number;
403
432
  error: string;
433
+ skippedItems: ReorderSkippedItem[];
404
434
  }
405
435
 
406
436
  export interface ListHistoryRequest {
@@ -450,6 +480,8 @@ export interface OrderServiceClient {
450
480
 
451
481
  editItems(request: EditItemsRequest): Observable<OrderResponse>;
452
482
 
483
+ previewRecalculation(request: PreviewRecalculationRequest): Observable<PreviewRecalculationResponse>;
484
+
453
485
  setTrackingNumber(request: SetTrackingNumberRequest): Observable<OrderResponse>;
454
486
 
455
487
  applyRecalculation(request: ApplyRecalculationRequest): Observable<OrderResponse>;
@@ -506,6 +538,10 @@ export interface OrderServiceController {
506
538
 
507
539
  editItems(request: EditItemsRequest): Promise<OrderResponse> | Observable<OrderResponse> | OrderResponse;
508
540
 
541
+ previewRecalculation(
542
+ request: PreviewRecalculationRequest,
543
+ ): Promise<PreviewRecalculationResponse> | Observable<PreviewRecalculationResponse> | PreviewRecalculationResponse;
544
+
509
545
  setTrackingNumber(
510
546
  request: SetTrackingNumberRequest,
511
547
  ): Promise<OrderResponse> | Observable<OrderResponse> | OrderResponse;
@@ -549,6 +585,7 @@ export function OrderServiceControllerMethods() {
549
585
  "addTag",
550
586
  "removeTag",
551
587
  "editItems",
588
+ "previewRecalculation",
552
589
  "setTrackingNumber",
553
590
  "applyRecalculation",
554
591
  "setCrmOrderId",
package/gen/payment.ts CHANGED
@@ -29,6 +29,8 @@ export interface Payment {
29
29
  capturedAt: number;
30
30
  cancelledAt: number;
31
31
  refundedAt: number;
32
+ captureSource: string;
33
+ captureNote: string;
32
34
  }
33
35
 
34
36
  export interface PaymentProviderInfo {
@@ -38,11 +40,9 @@ export interface PaymentProviderInfo {
38
40
  supportsInstallment: boolean;
39
41
  description: string;
40
42
  configured: boolean;
41
- /**
42
- * Для installment-провайдерів — максимум частин оплати (з конфігу `parts`).
43
- * 0 для звичайних провайдерів. Фронт показує «до N платежів» без env-синхронізації.
44
- */
45
43
  installmentMaxParts: number;
44
+ environment: string;
45
+ blockedByMode: boolean;
46
46
  }
47
47
 
48
48
  export interface CreateInvoiceRequest {
@@ -96,6 +96,13 @@ export interface CaptureRequest {
96
96
  actorId: string;
97
97
  }
98
98
 
99
+ export interface MarkPaidOfflineRequest {
100
+ id: string;
101
+ amount: number;
102
+ note: string;
103
+ actorId: string;
104
+ }
105
+
99
106
  export interface CancelRequest {
100
107
  id: string;
101
108
  reason: string;
@@ -175,6 +182,23 @@ export interface UpdateProviderConfigRequest {
175
182
  actorId: string;
176
183
  }
177
184
 
185
+ export interface GetPaymentsModeRequest {
186
+ }
187
+
188
+ export interface SetPaymentsModeRequest {
189
+ mode: string;
190
+ actorId: string;
191
+ confirmation: string;
192
+ }
193
+
194
+ export interface PaymentsModeResponse {
195
+ ok: boolean;
196
+ mode: string;
197
+ updatedAt: number;
198
+ updatedBy: string;
199
+ blockedProviders: string[];
200
+ }
201
+
178
202
  export const PAYMENT_V1_PACKAGE_NAME = "payment.v1";
179
203
 
180
204
  export interface PaymentServiceClient {
@@ -188,6 +212,8 @@ export interface PaymentServiceClient {
188
212
 
189
213
  capture(request: CaptureRequest): Observable<PaymentResponse>;
190
214
 
215
+ markPaidOffline(request: MarkPaidOfflineRequest): Observable<PaymentResponse>;
216
+
191
217
  cancel(request: CancelRequest): Observable<PaymentResponse>;
192
218
 
193
219
  refund(request: RefundRequest): Observable<PaymentResponse>;
@@ -203,6 +229,10 @@ export interface PaymentServiceClient {
203
229
  getProviderConfig(request: GetProviderConfigRequest): Observable<ProviderConfigResponse>;
204
230
 
205
231
  updateProviderConfig(request: UpdateProviderConfigRequest): Observable<ProviderConfigResponse>;
232
+
233
+ getPaymentsMode(request: GetPaymentsModeRequest): Observable<PaymentsModeResponse>;
234
+
235
+ setPaymentsMode(request: SetPaymentsModeRequest): Observable<PaymentsModeResponse>;
206
236
  }
207
237
 
208
238
  export interface PaymentServiceController {
@@ -222,6 +252,10 @@ export interface PaymentServiceController {
222
252
 
223
253
  capture(request: CaptureRequest): Promise<PaymentResponse> | Observable<PaymentResponse> | PaymentResponse;
224
254
 
255
+ markPaidOffline(
256
+ request: MarkPaidOfflineRequest,
257
+ ): Promise<PaymentResponse> | Observable<PaymentResponse> | PaymentResponse;
258
+
225
259
  cancel(request: CancelRequest): Promise<PaymentResponse> | Observable<PaymentResponse> | PaymentResponse;
226
260
 
227
261
  refund(request: RefundRequest): Promise<PaymentResponse> | Observable<PaymentResponse> | PaymentResponse;
@@ -247,6 +281,14 @@ export interface PaymentServiceController {
247
281
  updateProviderConfig(
248
282
  request: UpdateProviderConfigRequest,
249
283
  ): Promise<ProviderConfigResponse> | Observable<ProviderConfigResponse> | ProviderConfigResponse;
284
+
285
+ getPaymentsMode(
286
+ request: GetPaymentsModeRequest,
287
+ ): Promise<PaymentsModeResponse> | Observable<PaymentsModeResponse> | PaymentsModeResponse;
288
+
289
+ setPaymentsMode(
290
+ request: SetPaymentsModeRequest,
291
+ ): Promise<PaymentsModeResponse> | Observable<PaymentsModeResponse> | PaymentsModeResponse;
250
292
  }
251
293
 
252
294
  export function PaymentServiceControllerMethods() {
@@ -257,6 +299,7 @@ export function PaymentServiceControllerMethods() {
257
299
  "getPaymentByOrder",
258
300
  "listPayments",
259
301
  "capture",
302
+ "markPaidOffline",
260
303
  "cancel",
261
304
  "refund",
262
305
  "syncStatus",
@@ -265,6 +308,8 @@ export function PaymentServiceControllerMethods() {
265
308
  "toggleProvider",
266
309
  "getProviderConfig",
267
310
  "updateProviderConfig",
311
+ "getPaymentsMode",
312
+ "setPaymentsMode",
268
313
  ];
269
314
  for (const method of grpcMethods) {
270
315
  const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
package/gen/post.ts CHANGED
@@ -242,6 +242,9 @@ export interface UpdatePostRequest {
242
242
  tagIds: string[];
243
243
  images: PostImagePayload[];
244
244
  updatedById: string;
245
+ clearCategories: boolean;
246
+ clearTags: boolean;
247
+ clearImages: boolean;
245
248
  }
246
249
 
247
250
  export interface UpdatePostRequest_TitleEntry {
@@ -33,6 +33,7 @@ export interface GetCommentsRequest {
33
33
  pagination: PaginationRequest | undefined;
34
34
  postId?: string | undefined;
35
35
  status?: CommentStatus | undefined;
36
+ publicView: boolean;
36
37
  }
37
38
 
38
39
  export interface GetCommentsResponse {
package/gen/product.ts CHANGED
@@ -125,7 +125,6 @@ export interface ProductListItemResponse {
125
125
  activePromo?: ProductPromoInfo | undefined;
126
126
  weightKg: number;
127
127
  updatedAt: string;
128
- /** Артикул із 1С. Неунікальний, на відміну від sku, тож зберігається окремо. */
129
128
  article1c?: string | undefined;
130
129
  }
131
130
 
@@ -177,6 +176,7 @@ export interface ProductDetailResponse {
177
176
  weightKg: number;
178
177
  article1c?: string | undefined;
179
178
  barcodes: string[];
179
+ seoText: { [key: string]: string };
180
180
  }
181
181
 
182
182
  export interface ProductDetailResponse_NameEntry {
@@ -224,6 +224,11 @@ export interface ProductDetailResponse_ColorLabelEntry {
224
224
  value: string;
225
225
  }
226
226
 
227
+ export interface ProductDetailResponse_SeoTextEntry {
228
+ key: string;
229
+ value: string;
230
+ }
231
+
227
232
  export interface ProductImageResponse {
228
233
  id: string;
229
234
  url: string;
@@ -404,6 +409,7 @@ export interface CreateProductRequest {
404
409
  colorLabel: { [key: string]: string };
405
410
  colorHex?: string | undefined;
406
411
  weightKg?: number | undefined;
412
+ seoText: { [key: string]: string };
407
413
  }
408
414
 
409
415
  export interface CreateProductRequest_NameEntry {
@@ -436,6 +442,11 @@ export interface CreateProductRequest_ColorLabelEntry {
436
442
  value: string;
437
443
  }
438
444
 
445
+ export interface CreateProductRequest_SeoTextEntry {
446
+ key: string;
447
+ value: string;
448
+ }
449
+
439
450
  export interface UpdateProductRequest {
440
451
  id: string;
441
452
  sku?: string | undefined;
@@ -463,23 +474,12 @@ export interface UpdateProductRequest {
463
474
  colorHex?: string | undefined;
464
475
  manualRating?: number | undefined;
465
476
  weightKg?: number | undefined;
466
- guid1c?:
467
- | string
468
- | undefined;
469
- /**
470
- * Явне очищення списків.
471
- *
472
- * У proto3 `repeated` не відрізняє «не передано» від «передано порожнім»,
473
- * тож порожній масив сам по собі означає «не чіпати». Раніше цього
474
- * розрізнення не було: клієнт, який не надіслав `images`, отримував від
475
- * gateway [] — і всі фото товару видалялися разом із файлами в S3.
476
- *
477
- * Той самий підхід уже застосований в UpdateProductVariantRequest.
478
- */
477
+ guid1c?: string | undefined;
479
478
  clearImages: boolean;
480
479
  clearCategories: boolean;
481
480
  clearStickers: boolean;
482
481
  clearAttributes: boolean;
482
+ seoText: { [key: string]: string };
483
483
  }
484
484
 
485
485
  export interface UpdateProductRequest_NameEntry {
@@ -512,6 +512,11 @@ export interface UpdateProductRequest_ColorLabelEntry {
512
512
  value: string;
513
513
  }
514
514
 
515
+ export interface UpdateProductRequest_SeoTextEntry {
516
+ key: string;
517
+ value: string;
518
+ }
519
+
515
520
  export interface SetManualRatingRequest {
516
521
  id: string;
517
522
  manualRating?: number | undefined;
@@ -644,9 +649,7 @@ export interface ProductGroupMember {
644
649
  colorHex: string;
645
650
  price: number;
646
651
  status: ProductStatus;
647
- /** Потрібен вітрині: перемикач кольору веде на картку сусіда за ЧПУ. */
648
652
  slug: string;
649
- /** Чи є що купити — сусід без залишку показується неактивним, а не зникає. */
650
653
  inStock: boolean;
651
654
  }
652
655
 
package/gen/promotion.ts CHANGED
@@ -287,6 +287,8 @@ export interface UpdatePromotionRequest {
287
287
  cascadeSteps?: string | undefined;
288
288
  bundlePrice?: number | undefined;
289
289
  bundleSize?: number | undefined;
290
+ replaceConditions?: boolean | undefined;
291
+ replaceExclusions?: boolean | undefined;
290
292
  }
291
293
 
292
294
  export interface UpdatePromotionRequest_NameEntry {
@@ -47,10 +47,7 @@ export interface ShopFilterOption {
47
47
  value: string;
48
48
  label: string;
49
49
  count: number;
50
- slug?:
51
- | string
52
- | undefined;
53
- /** Для розмірів: атрибут-джерело значення (вкладки у фільтрі «Розмір»). */
50
+ slug?: string | undefined;
54
51
  groupSlug?: string | undefined;
55
52
  groupLabel?: string | undefined;
56
53
  }
@@ -42,6 +42,7 @@ export interface SiteSettingsResponse {
42
42
  updatedAt: string;
43
43
  workingHours?: string | undefined;
44
44
  workingHoursNote?: string | undefined;
45
+ sizeCategorySlugs?: string | undefined;
45
46
  }
46
47
 
47
48
  export interface GetSiteSettingsRequest {
@@ -58,6 +59,7 @@ export interface UpdateSiteSettingsRequest {
58
59
  clearTelegramUrl: boolean;
59
60
  workingHours?: string | undefined;
60
61
  workingHoursNote?: string | undefined;
62
+ sizeCategorySlugs?: string | undefined;
61
63
  }
62
64
 
63
65
  export const CONTENT_V1_PACKAGE_NAME = "content.v1";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mamindom/contracts",
3
3
  "description": "proto",
4
- "version": "1.0.193",
4
+ "version": "1.0.201",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "exports": {
@@ -182,6 +182,10 @@ message UpdateBannerSlideRequest {
182
182
 
183
183
  optional string styling = 13;
184
184
  optional int32 sort_order = 14;
185
+
186
+
187
+ bool clear_buttons = 15;
188
+ bool clear_links = 16;
185
189
  }
186
190
 
187
191
  message DeleteBannerSlideRequest {
@@ -201,7 +205,6 @@ message UpdateSlideOrderRequest {
201
205
  message GetBannersByPlacementRequest {
202
206
  BannerPlacement placement = 1;
203
207
  optional string category_id = 2;
204
- optional string lang = 3;
205
208
  }
206
209
 
207
210
  message PublicBannerResponse {
@@ -214,12 +217,12 @@ message PublicBannerResponse {
214
217
  message PublicSlideResponse {
215
218
  string image = 1;
216
219
  optional string mobile_image = 2;
217
- optional string title = 3;
218
- optional string subtitle = 4;
220
+ map<string, string> title = 3;
221
+ map<string, string> subtitle = 4;
219
222
 
220
- repeated PublicBannerSlideButton buttons = 5;
223
+ repeated BannerSlideButton buttons = 5;
221
224
  optional ElementPosition buttons_position = 6;
222
- repeated PublicBannerSlideLink links = 7;
225
+ repeated BannerSlideLink links = 7;
223
226
  optional ElementPosition links_position = 8;
224
227
  optional string links_layout = 9;
225
228
 
@@ -259,27 +262,3 @@ message BannerSlideLink {
259
262
  string href = 2;
260
263
  optional string category_id = 3;
261
264
  }
262
-
263
- message PublicBannerSlideButton {
264
- string text = 1;
265
- string href = 2;
266
- optional string variant = 3;
267
- optional string background_color = 4;
268
- optional string text_color = 5;
269
- optional string border_color = 6;
270
- optional string border_radius = 7;
271
- optional string font_size = 8;
272
- optional string padding_x = 9;
273
- optional string padding_y = 10;
274
- optional string font_size_mobile = 11;
275
- optional string padding_x_mobile = 12;
276
- optional string padding_y_mobile = 13;
277
- optional string text_align = 14;
278
- optional string text_align_mobile = 15;
279
- }
280
-
281
- message PublicBannerSlideLink {
282
- string text = 1;
283
- string href = 2;
284
- optional string category_id = 3;
285
- }