@mamindom/contracts 1.0.144 → 1.0.146

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 (96) hide show
  1. package/dist/gen/attribute.d.ts +40 -0
  2. package/dist/gen/attribute.js +1 -0
  3. package/dist/gen/brand.d.ts +19 -0
  4. package/dist/gen/brand.js +8 -1
  5. package/dist/gen/bundle.d.ts +0 -2
  6. package/dist/gen/cart.d.ts +0 -28
  7. package/dist/gen/category.d.ts +26 -0
  8. package/dist/gen/category.js +1 -0
  9. package/dist/gen/delivery.d.ts +0 -1
  10. package/dist/gen/delivery_settings.d.ts +0 -4
  11. package/dist/gen/faq.d.ts +0 -6
  12. package/dist/gen/manager.d.ts +0 -12
  13. package/dist/gen/notification.d.ts +0 -71
  14. package/dist/gen/order.d.ts +0 -29
  15. package/dist/gen/page.d.ts +0 -5
  16. package/dist/gen/payment.d.ts +0 -22
  17. package/dist/gen/pickup.d.ts +0 -9
  18. package/dist/gen/product.d.ts +108 -11
  19. package/dist/gen/product.js +5 -0
  20. package/dist/gen/promotion.d.ts +0 -16
  21. package/dist/gen/rbac.d.ts +0 -16
  22. package/dist/gen/search.d.ts +0 -14
  23. package/dist/gen/seo_filter.d.ts +0 -57
  24. package/dist/gen/shop_filters.d.ts +0 -5
  25. package/dist/gen/users.d.ts +0 -9
  26. package/dist/gen/warehouse.d.ts +34 -0
  27. package/dist/gen/warehouse.js +28 -0
  28. package/dist/proto/attribute.proto +35 -0
  29. package/dist/proto/brand.proto +25 -0
  30. package/dist/proto/bundle.proto +2 -2
  31. package/dist/proto/cart.proto +5 -14
  32. package/dist/proto/category.proto +26 -0
  33. package/dist/proto/delivery.proto +1 -6
  34. package/dist/proto/delivery_settings.proto +4 -4
  35. package/dist/proto/faq.proto +3 -10
  36. package/dist/proto/manager.proto +3 -5
  37. package/dist/proto/notification.proto +33 -56
  38. package/dist/proto/order.proto +9 -21
  39. package/dist/proto/page.proto +1 -3
  40. package/dist/proto/payment.proto +8 -14
  41. package/dist/proto/pickup.proto +7 -9
  42. package/dist/proto/product.proto +144 -34
  43. package/dist/proto/promotion.proto +9 -22
  44. package/dist/proto/rbac.proto +7 -9
  45. package/dist/proto/search.proto +10 -14
  46. package/dist/proto/seo_filter.proto +17 -36
  47. package/dist/proto/shop_filters.proto +1 -3
  48. package/dist/proto/users.proto +5 -8
  49. package/dist/proto/warehouse.proto +38 -0
  50. package/dist/src/proto/paths.d.ts +1 -0
  51. package/dist/src/proto/paths.js +1 -0
  52. package/gen/attribute.ts +48 -0
  53. package/gen/brand.ts +35 -1
  54. package/gen/bundle.ts +1 -5
  55. package/gen/cart.ts +1 -35
  56. package/gen/category.ts +34 -0
  57. package/gen/delivery.ts +0 -1
  58. package/gen/delivery_settings.ts +0 -4
  59. package/gen/faq.ts +0 -12
  60. package/gen/manager.ts +1 -17
  61. package/gen/notification.ts +5 -98
  62. package/gen/order.ts +0 -33
  63. package/gen/page.ts +0 -5
  64. package/gen/payment.ts +0 -34
  65. package/gen/pickup.ts +2 -19
  66. package/gen/product.ts +148 -28
  67. package/gen/promotion.ts +3 -33
  68. package/gen/rbac.ts +1 -25
  69. package/gen/search.ts +0 -22
  70. package/gen/seo_filter.ts +3 -74
  71. package/gen/shop_filters.ts +0 -5
  72. package/gen/users.ts +1 -20
  73. package/gen/warehouse.ts +67 -0
  74. package/package.json +1 -1
  75. package/proto/attribute.proto +35 -0
  76. package/proto/brand.proto +25 -0
  77. package/proto/bundle.proto +2 -2
  78. package/proto/cart.proto +5 -14
  79. package/proto/category.proto +26 -0
  80. package/proto/delivery.proto +1 -6
  81. package/proto/delivery_settings.proto +4 -4
  82. package/proto/faq.proto +3 -10
  83. package/proto/manager.proto +3 -5
  84. package/proto/notification.proto +33 -56
  85. package/proto/order.proto +9 -21
  86. package/proto/page.proto +1 -3
  87. package/proto/payment.proto +8 -14
  88. package/proto/pickup.proto +7 -9
  89. package/proto/product.proto +144 -34
  90. package/proto/promotion.proto +9 -22
  91. package/proto/rbac.proto +7 -9
  92. package/proto/search.proto +10 -14
  93. package/proto/seo_filter.proto +17 -36
  94. package/proto/shop_filters.proto +1 -3
  95. package/proto/users.proto +5 -8
  96. package/proto/warehouse.proto +38 -0
@@ -6,14 +6,9 @@ import "common.proto";
6
6
 
7
7
 
8
8
  service SeoFilterService {
9
- // ─── Public ──────────────────────────────────────────────────────────────
10
9
 
11
- // Резолв ЧПУ-URL → metadata + canonical. Викликається SSR Next.js для
12
- // кожного category/[[...filters]] запиту. Якщо combo не знайдено —
13
- // повертає isIndexed=false і автогенерований fallback metadata.
14
10
  rpc ResolveSeoFilter (ResolveSeoFilterRequest) returns (ResolveSeoFilterResponse);
15
11
 
16
- // ─── Admin ───────────────────────────────────────────────────────────────
17
12
 
18
13
  rpc ListSeoFilters (ListSeoFiltersRequest) returns (ListSeoFiltersResponse);
19
14
  rpc GetSeoFilter (GetSeoFilterRequest) returns (SeoFilterResponse);
@@ -21,30 +16,24 @@ service SeoFilterService {
21
16
  rpc UpdateSeoFilter (UpdateSeoFilterRequest) returns (SeoFilterResponse);
22
17
  rpc DeleteSeoFilter (DeleteSeoFilterRequest) returns (DeleteResponse);
23
18
 
24
- // Топ-N непокритих combinations (за impressions/popularity) — для
25
- // швидкого створення SeoFilter з адмін-форми "Автопідказки".
19
+
26
20
  rpc SuggestSeoFilters (SuggestSeoFiltersRequest) returns (SuggestSeoFiltersResponse);
27
21
 
28
- // Список усіх індексованих SeoFilter URL — для побудови sitemap.xml.
29
- // Повертає одночасно uk+ru сегменти (denormalized) + category slug.
30
22
  rpc ListIndexedForSitemap (ListIndexedForSitemapRequest) returns (ListIndexedForSitemapResponse);
31
23
  }
32
24
 
33
- // ─────────────────────────── Domain types ────────────────────────────────
34
25
 
35
- // Частина combo. Однаковий формат і у DB (combo_parts JSON), і у gRPC.
36
- // type: 'brand'|'price'|'color'|'size'
37
26
  message FilterPart {
38
27
  string type = 1;
39
- // Для brand/color/size:
28
+
40
29
  optional string value_id = 2;
41
30
  optional string value_slug = 3;
42
- // Для price:
31
+
43
32
  optional int32 price_min = 4;
44
33
  optional int32 price_max = 5;
45
34
  }
46
35
 
47
- // Локалізовані поля (uk/ru) у форматі { uk: "...", ru: "..." }.
36
+
48
37
  message LocaleStrings {
49
38
  string uk = 1;
50
39
  string ru = 2;
@@ -66,40 +55,35 @@ message SeoFilterResponse {
66
55
  int64 updated_at = 13;
67
56
  }
68
57
 
69
- // ─────────────────────────── Resolve (public) ────────────────────────────
70
58
 
71
59
  message ResolveSeoFilterRequest {
72
60
  string category_id = 1;
73
- // Канонічно відсортовані URL segments як приходять з Next.js, напр.
74
- // ["brend-cybex", "cina-1000-5000"]. Caller гарантує що порядок canonical.
61
+
75
62
  repeated string url_segments = 2;
76
- string locale = 3; // 'uk' | 'ru'
63
+ string locale = 3;
77
64
  }
78
65
 
79
66
  message ResolveSeoFilterResponse {
80
- // Якщо false → caller рендерить категорію з noindex,follow.
67
+
81
68
  bool found = 1;
82
- // Якщо false → caller додає <meta robots="noindex,follow"> навіть якщо
83
- // запис знайдено (наприклад, isIndexed=false manual override).
69
+
84
70
  bool is_indexed = 2;
85
71
  LocaleStrings title = 3;
86
72
  LocaleStrings description = 4;
87
73
  LocaleStrings h1 = 5;
88
- // Canonical-URL-path без host: "/uk/c/koliaski/brend-cybex"
74
+
89
75
  string canonical_path = 6;
90
- // Денормалізовані combo_parts з resolved valueId — для побудови
91
- // запиту до products (categoryId + filter ids).
76
+
92
77
  repeated FilterPart resolved_parts = 7;
93
78
  }
94
79
 
95
- // ─────────────────────────── List (admin) ────────────────────────────────
96
80
 
97
81
  message ListSeoFiltersRequest {
98
82
  PaginationRequest pagination = 1;
99
83
  optional string category_id = 2;
100
84
  optional bool is_indexed = 3;
101
85
  optional bool is_auto = 4;
102
- // Пошук за uk/ru title (для адмін-фільтра).
86
+
103
87
  optional string search = 5;
104
88
  }
105
89
 
@@ -112,7 +96,6 @@ message GetSeoFilterRequest {
112
96
  string id = 1;
113
97
  }
114
98
 
115
- // ─────────────────────────── Create / Update ─────────────────────────────
116
99
 
117
100
  message CreateSeoFilterRequest {
118
101
  string category_id = 1;
@@ -135,21 +118,20 @@ message DeleteSeoFilterRequest {
135
118
  string id = 1;
136
119
  }
137
120
 
138
- // ─────────────────────────── Suggestions (admin) ─────────────────────────
139
121
 
140
122
  message SuggestSeoFiltersRequest {
141
123
  string category_id = 1;
142
- int32 limit = 2; // default 20
124
+ int32 limit = 2;
143
125
  }
144
126
 
145
127
  message SuggestSeoFilterCandidate {
146
- // Запропоновані combo_parts (валідні, з resolved slug).
128
+
147
129
  repeated FilterPart combo_parts = 1;
148
- // Оцінка популярності: clicks / impressions / товарообіг (single число).
130
+
149
131
  int32 score = 2;
150
- // Чи існує вже SeoFilter з таким комбо (тоді UI ховає кнопку Create).
132
+
151
133
  bool already_exists = 3;
152
- // Pre-built canonical URL path для preview.
134
+
153
135
  LocaleStrings preview_segments = 4;
154
136
  }
155
137
 
@@ -157,10 +139,9 @@ message SuggestSeoFiltersResponse {
157
139
  repeated SuggestSeoFilterCandidate items = 1;
158
140
  }
159
141
 
160
- // ─────────────────────────── Sitemap (public) ────────────────────────────
161
142
 
162
143
  message ListIndexedForSitemapRequest {
163
- // Опційний фільтр — для cursor-pagination якщо записів стане багато.
144
+
164
145
  optional int32 limit = 1;
165
146
  optional string after_id = 2;
166
147
  }
@@ -60,9 +60,7 @@ message ShopFilterOption {
60
60
  string value = 1;
61
61
  string label = 2;
62
62
  int32 count = 3;
63
- // slug ОПЦІЙНИЙ — потрібен для побудови ЧПУ-URL фільтрами
64
- // (brend-<slug>, kolir-<slug>, rozmir-<slug>). Якщо slug ще не
65
- // згенеровано через backfill — пусто, frontend fallback на id.
63
+
66
64
  optional string slug = 4;
67
65
  }
68
66
 
package/proto/users.proto CHANGED
@@ -31,24 +31,24 @@ service UsersService {
31
31
  rpc ExportUserData(ExportUserDataRequest) returns (ExportUserDataResponse);
32
32
  rpc DeleteAccount(DeleteAccountRequest) returns (DeleteAccountResponse);
33
33
 
34
- // Family
34
+
35
35
  rpc GetFamily(GetFamilyRequest) returns (GetFamilyResponse);
36
36
  rpc AddChild(AddChildRequest) returns (ChildResponse);
37
37
  rpc UpdateChild(UpdateChildRequest) returns (ChildResponse);
38
38
  rpc RemoveChild(RemoveChildRequest) returns (RemoveChildResponse);
39
39
 
40
- // Pregnancy
40
+
41
41
  rpc GetPregnancy(GetPregnancyRequest) returns (GetPregnancyResponse);
42
42
  rpc UpdatePregnancy(UpdatePregnancyRequest) returns (GetPregnancyResponse);
43
43
 
44
- // Cart
44
+
45
45
  rpc GetCart(GetCartRequest) returns (GetCartResponse);
46
46
  rpc UpsertCartItem(UpsertCartItemRequest) returns (GetCartResponse);
47
47
  rpc RemoveCartItem(RemoveCartItemRequest) returns (GetCartResponse);
48
48
  rpc ClearCart(ClearCartRequest) returns (ClearCartResponse);
49
49
  rpc SyncCart(SyncCartRequest) returns (GetCartResponse);
50
50
 
51
- // Admin CRM — редагування клієнта менеджером (customers.edit на gateway).
51
+
52
52
  rpc AdminUpdateCustomer(AdminUpdateCustomerRequest) returns (AdminUpdateCustomerResponse);
53
53
  }
54
54
 
@@ -97,7 +97,7 @@ message AdminUpdateCustomerRequest {
97
97
  string id = 1;
98
98
  optional string first_name = 2;
99
99
  optional string last_name = 3;
100
- // internal_note редагується тут окремо, бо це CRM-поле — не видиме клієнту.
100
+
101
101
  optional string internal_note = 4;
102
102
  }
103
103
 
@@ -249,7 +249,6 @@ message DeleteAccountResponse {
249
249
  bool ok = 1;
250
250
  }
251
251
 
252
- // ── Family ───────────────────────────────────────────────────────────────────
253
252
 
254
253
  enum Gender {
255
254
  BOY = 0;
@@ -300,7 +299,6 @@ message RemoveChildResponse {
300
299
  bool ok = 1;
301
300
  }
302
301
 
303
- // ── Pregnancy ────────────────────────────────────────────────────────────────
304
302
 
305
303
  message GetPregnancyRequest {
306
304
  string user_id = 1;
@@ -315,7 +313,6 @@ message UpdatePregnancyRequest {
315
313
  int32 week = 2;
316
314
  }
317
315
 
318
- // ── Cart ─────────────────────────────────────────────────────────────────────
319
316
 
320
317
  message CartItemVariant {
321
318
  string key = 1;
@@ -0,0 +1,38 @@
1
+ syntax = "proto3";
2
+
3
+ package catalog.v1;
4
+
5
+
6
+ service WarehouseService {
7
+ rpc UpsertWarehouses (UpsertWarehousesRequest) returns (UpsertWarehousesResponse);
8
+ }
9
+
10
+ message WarehouseSyncItem {
11
+ string warehouse_guid = 1;
12
+ string name = 2;
13
+
14
+ string code1c = 3;
15
+ optional string pf_code = 4;
16
+ optional string address = 5;
17
+ optional string phone = 6;
18
+
19
+ optional bool is_retail = 7;
20
+ }
21
+
22
+ message UpsertWarehousesRequest {
23
+ repeated WarehouseSyncItem items = 1;
24
+ string sync_id = 2;
25
+
26
+ string online_warehouse_code = 3;
27
+ }
28
+
29
+ message WarehouseUpsertResult {
30
+ string guid = 1;
31
+ string status = 2;
32
+ optional string reason = 3;
33
+ optional string id = 4;
34
+ }
35
+
36
+ message UpsertWarehousesResponse {
37
+ repeated WarehouseUpsertResult results = 1;
38
+ }