@mamindom/contracts 1.0.65 → 1.0.67

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.
@@ -0,0 +1,331 @@
1
+ import { Observable } from "rxjs";
2
+ import { DeleteResponse, PaginationMeta, PaginationRequest, SuccessResponse } from "./common";
3
+ export declare const protobufPackage = "catalog.v1";
4
+ export declare enum BundleStatus {
5
+ BUNDLE_STATUS_UNSPECIFIED = 0,
6
+ BUNDLE_STATUS_DRAFT = 1,
7
+ BUNDLE_STATUS_ACTIVE = 2,
8
+ BUNDLE_STATUS_INACTIVE = 3,
9
+ UNRECOGNIZED = -1
10
+ }
11
+ export declare enum DiscountType {
12
+ DISCOUNT_TYPE_UNSPECIFIED = 0,
13
+ DISCOUNT_TYPE_PERCENTAGE = 1,
14
+ DISCOUNT_TYPE_FIXED_AMOUNT = 2,
15
+ UNRECOGNIZED = -1
16
+ }
17
+ export interface GetBundlesRequest {
18
+ pagination: PaginationRequest | undefined;
19
+ search?: string | undefined;
20
+ status?: BundleStatus | undefined;
21
+ productId?: string | undefined;
22
+ }
23
+ export interface GetBundleRequest {
24
+ id: string;
25
+ slug?: string | undefined;
26
+ }
27
+ export interface CreateBundleRequest {
28
+ slug?: string | undefined;
29
+ status: BundleStatus;
30
+ name: {
31
+ [key: string]: string;
32
+ };
33
+ shortDescription: {
34
+ [key: string]: string;
35
+ };
36
+ description: {
37
+ [key: string]: string;
38
+ };
39
+ mainImage?: string | undefined;
40
+ mainImageId?: string | undefined;
41
+ discountType: DiscountType;
42
+ discountValue: number;
43
+ fixedPrice?: number | undefined;
44
+ isExclusive: boolean;
45
+ sortOrder?: number | undefined;
46
+ metaTitle: {
47
+ [key: string]: string;
48
+ };
49
+ metaDescription: {
50
+ [key: string]: string;
51
+ };
52
+ items: BundleItemPayload[];
53
+ createdById: string;
54
+ }
55
+ export interface CreateBundleRequest_NameEntry {
56
+ key: string;
57
+ value: string;
58
+ }
59
+ export interface CreateBundleRequest_ShortDescriptionEntry {
60
+ key: string;
61
+ value: string;
62
+ }
63
+ export interface CreateBundleRequest_DescriptionEntry {
64
+ key: string;
65
+ value: string;
66
+ }
67
+ export interface CreateBundleRequest_MetaTitleEntry {
68
+ key: string;
69
+ value: string;
70
+ }
71
+ export interface CreateBundleRequest_MetaDescriptionEntry {
72
+ key: string;
73
+ value: string;
74
+ }
75
+ export interface UpdateBundleRequest {
76
+ id: string;
77
+ slug?: string | undefined;
78
+ status?: BundleStatus | undefined;
79
+ name: {
80
+ [key: string]: string;
81
+ };
82
+ shortDescription: {
83
+ [key: string]: string;
84
+ };
85
+ description: {
86
+ [key: string]: string;
87
+ };
88
+ mainImage?: string | undefined;
89
+ mainImageId?: string | undefined;
90
+ discountType?: DiscountType | undefined;
91
+ discountValue?: number | undefined;
92
+ fixedPrice?: number | undefined;
93
+ isExclusive?: boolean | undefined;
94
+ sortOrder?: number | undefined;
95
+ metaTitle: {
96
+ [key: string]: string;
97
+ };
98
+ metaDescription: {
99
+ [key: string]: string;
100
+ };
101
+ items: BundleItemPayload[];
102
+ }
103
+ export interface UpdateBundleRequest_NameEntry {
104
+ key: string;
105
+ value: string;
106
+ }
107
+ export interface UpdateBundleRequest_ShortDescriptionEntry {
108
+ key: string;
109
+ value: string;
110
+ }
111
+ export interface UpdateBundleRequest_DescriptionEntry {
112
+ key: string;
113
+ value: string;
114
+ }
115
+ export interface UpdateBundleRequest_MetaTitleEntry {
116
+ key: string;
117
+ value: string;
118
+ }
119
+ export interface UpdateBundleRequest_MetaDescriptionEntry {
120
+ key: string;
121
+ value: string;
122
+ }
123
+ export interface DeleteBundleRequest {
124
+ id: string;
125
+ }
126
+ export interface BundleItemPayload {
127
+ productId: string;
128
+ variantId?: string | undefined;
129
+ quantity: number;
130
+ itemDiscountType?: DiscountType | undefined;
131
+ itemDiscountValue?: number | undefined;
132
+ sortOrder: number;
133
+ }
134
+ export interface AddBundleItemRequest {
135
+ bundleId: string;
136
+ item: BundleItemPayload | undefined;
137
+ }
138
+ export interface RemoveBundleItemRequest {
139
+ bundleId: string;
140
+ itemId: string;
141
+ }
142
+ export interface UpdateBundleItemRequest {
143
+ bundleId: string;
144
+ itemId: string;
145
+ quantity?: number | undefined;
146
+ itemDiscountType?: DiscountType | undefined;
147
+ itemDiscountValue?: number | undefined;
148
+ sortOrder?: number | undefined;
149
+ }
150
+ export interface AddBundleRuleRequest {
151
+ bundleId: string;
152
+ ruleType: string;
153
+ targetId: string;
154
+ excludedProductIds: string[];
155
+ }
156
+ export interface RemoveBundleRuleRequest {
157
+ bundleId: string;
158
+ ruleId: string;
159
+ }
160
+ export interface GetBundlesByProductRequest {
161
+ productId: string;
162
+ status?: BundleStatus | undefined;
163
+ }
164
+ export interface BulkUpdateBundleStatusRequest {
165
+ bundleIds: string[];
166
+ status: BundleStatus;
167
+ }
168
+ export interface BulkDeleteBundlesRequest {
169
+ bundleIds: string[];
170
+ }
171
+ export interface CheckBundleAvailabilityRequest {
172
+ bundleId: string;
173
+ }
174
+ export interface GetBundlesResponse {
175
+ items: BundleListItemResponse[];
176
+ meta: PaginationMeta | undefined;
177
+ }
178
+ export interface BundleListItemResponse {
179
+ id: string;
180
+ slug: string;
181
+ status: BundleStatus;
182
+ name: {
183
+ [key: string]: string;
184
+ };
185
+ mainImage: string;
186
+ discountType: DiscountType;
187
+ discountValue: number;
188
+ fixedPrice?: number | undefined;
189
+ isExclusive: boolean;
190
+ sortOrder: number;
191
+ itemCount: number;
192
+ originalPrice: number;
193
+ finalPrice: number;
194
+ inStock: boolean;
195
+ }
196
+ export interface BundleListItemResponse_NameEntry {
197
+ key: string;
198
+ value: string;
199
+ }
200
+ export interface BundleDetailResponse {
201
+ id: string;
202
+ slug: string;
203
+ status: BundleStatus;
204
+ sortOrder: number;
205
+ name: {
206
+ [key: string]: string;
207
+ };
208
+ shortDescription: {
209
+ [key: string]: string;
210
+ };
211
+ description: {
212
+ [key: string]: string;
213
+ };
214
+ mainImage: string;
215
+ mainImageId?: string | undefined;
216
+ discountType: DiscountType;
217
+ discountValue: number;
218
+ fixedPrice?: number | undefined;
219
+ isExclusive: boolean;
220
+ metaTitle: {
221
+ [key: string]: string;
222
+ };
223
+ metaDescription: {
224
+ [key: string]: string;
225
+ };
226
+ items: BundleItemResponse[];
227
+ rules: BundleRuleResponse[];
228
+ originalPrice: number;
229
+ finalPrice: number;
230
+ inStock: boolean;
231
+ }
232
+ export interface BundleDetailResponse_NameEntry {
233
+ key: string;
234
+ value: string;
235
+ }
236
+ export interface BundleDetailResponse_ShortDescriptionEntry {
237
+ key: string;
238
+ value: string;
239
+ }
240
+ export interface BundleDetailResponse_DescriptionEntry {
241
+ key: string;
242
+ value: string;
243
+ }
244
+ export interface BundleDetailResponse_MetaTitleEntry {
245
+ key: string;
246
+ value: string;
247
+ }
248
+ export interface BundleDetailResponse_MetaDescriptionEntry {
249
+ key: string;
250
+ value: string;
251
+ }
252
+ export interface BundleItemResponse {
253
+ id: string;
254
+ productId: string;
255
+ variantId?: string | undefined;
256
+ quantity: number;
257
+ itemDiscountType?: DiscountType | undefined;
258
+ itemDiscountValue?: number | undefined;
259
+ sortOrder: number;
260
+ productName: {
261
+ [key: string]: string;
262
+ };
263
+ productImage: string;
264
+ productSku: string;
265
+ productPrice: number;
266
+ productStock: number;
267
+ itemFinalPrice: number;
268
+ }
269
+ export interface BundleItemResponse_ProductNameEntry {
270
+ key: string;
271
+ value: string;
272
+ }
273
+ export interface BundleRuleResponse {
274
+ id: string;
275
+ ruleType: string;
276
+ targetId: string;
277
+ excludedProductIds: string[];
278
+ targetName: {
279
+ [key: string]: string;
280
+ };
281
+ }
282
+ export interface BundleRuleResponse_TargetNameEntry {
283
+ key: string;
284
+ value: string;
285
+ }
286
+ export interface BundleAvailabilityResponse {
287
+ available: boolean;
288
+ items: BundleItemAvailability[];
289
+ }
290
+ export interface BundleItemAvailability {
291
+ productId: string;
292
+ variantId?: string | undefined;
293
+ requiredQuantity: number;
294
+ availableQuantity: number;
295
+ inStock: boolean;
296
+ }
297
+ export declare const CATALOG_V1_PACKAGE_NAME = "catalog.v1";
298
+ export interface BundleServiceClient {
299
+ getBundles(request: GetBundlesRequest): Observable<GetBundlesResponse>;
300
+ getBundle(request: GetBundleRequest): Observable<BundleDetailResponse>;
301
+ createBundle(request: CreateBundleRequest): Observable<BundleDetailResponse>;
302
+ updateBundle(request: UpdateBundleRequest): Observable<BundleDetailResponse>;
303
+ deleteBundle(request: DeleteBundleRequest): Observable<DeleteResponse>;
304
+ addBundleItem(request: AddBundleItemRequest): Observable<BundleDetailResponse>;
305
+ removeBundleItem(request: RemoveBundleItemRequest): Observable<BundleDetailResponse>;
306
+ updateBundleItem(request: UpdateBundleItemRequest): Observable<BundleDetailResponse>;
307
+ addBundleRule(request: AddBundleRuleRequest): Observable<SuccessResponse>;
308
+ removeBundleRule(request: RemoveBundleRuleRequest): Observable<SuccessResponse>;
309
+ getBundlesByProduct(request: GetBundlesByProductRequest): Observable<GetBundlesResponse>;
310
+ bulkUpdateBundleStatus(request: BulkUpdateBundleStatusRequest): Observable<SuccessResponse>;
311
+ bulkDeleteBundles(request: BulkDeleteBundlesRequest): Observable<SuccessResponse>;
312
+ checkBundleAvailability(request: CheckBundleAvailabilityRequest): Observable<BundleAvailabilityResponse>;
313
+ }
314
+ export interface BundleServiceController {
315
+ getBundles(request: GetBundlesRequest): Promise<GetBundlesResponse> | Observable<GetBundlesResponse> | GetBundlesResponse;
316
+ getBundle(request: GetBundleRequest): Promise<BundleDetailResponse> | Observable<BundleDetailResponse> | BundleDetailResponse;
317
+ createBundle(request: CreateBundleRequest): Promise<BundleDetailResponse> | Observable<BundleDetailResponse> | BundleDetailResponse;
318
+ updateBundle(request: UpdateBundleRequest): Promise<BundleDetailResponse> | Observable<BundleDetailResponse> | BundleDetailResponse;
319
+ deleteBundle(request: DeleteBundleRequest): Promise<DeleteResponse> | Observable<DeleteResponse> | DeleteResponse;
320
+ addBundleItem(request: AddBundleItemRequest): Promise<BundleDetailResponse> | Observable<BundleDetailResponse> | BundleDetailResponse;
321
+ removeBundleItem(request: RemoveBundleItemRequest): Promise<BundleDetailResponse> | Observable<BundleDetailResponse> | BundleDetailResponse;
322
+ updateBundleItem(request: UpdateBundleItemRequest): Promise<BundleDetailResponse> | Observable<BundleDetailResponse> | BundleDetailResponse;
323
+ addBundleRule(request: AddBundleRuleRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
324
+ removeBundleRule(request: RemoveBundleRuleRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
325
+ getBundlesByProduct(request: GetBundlesByProductRequest): Promise<GetBundlesResponse> | Observable<GetBundlesResponse> | GetBundlesResponse;
326
+ bulkUpdateBundleStatus(request: BulkUpdateBundleStatusRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
327
+ bulkDeleteBundles(request: BulkDeleteBundlesRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
328
+ checkBundleAvailability(request: CheckBundleAvailabilityRequest): Promise<BundleAvailabilityResponse> | Observable<BundleAvailabilityResponse> | BundleAvailabilityResponse;
329
+ }
330
+ export declare function BundleServiceControllerMethods(): (constructor: Function) => void;
331
+ export declare const BUNDLE_SERVICE_NAME = "BundleService";
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.11.4
5
+ // protoc v3.21.12
6
+ // source: bundle.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BUNDLE_SERVICE_NAME = exports.CATALOG_V1_PACKAGE_NAME = exports.DiscountType = exports.BundleStatus = exports.protobufPackage = void 0;
9
+ exports.BundleServiceControllerMethods = BundleServiceControllerMethods;
10
+ /* eslint-disable */
11
+ const microservices_1 = require("@nestjs/microservices");
12
+ exports.protobufPackage = "catalog.v1";
13
+ var BundleStatus;
14
+ (function (BundleStatus) {
15
+ BundleStatus[BundleStatus["BUNDLE_STATUS_UNSPECIFIED"] = 0] = "BUNDLE_STATUS_UNSPECIFIED";
16
+ BundleStatus[BundleStatus["BUNDLE_STATUS_DRAFT"] = 1] = "BUNDLE_STATUS_DRAFT";
17
+ BundleStatus[BundleStatus["BUNDLE_STATUS_ACTIVE"] = 2] = "BUNDLE_STATUS_ACTIVE";
18
+ BundleStatus[BundleStatus["BUNDLE_STATUS_INACTIVE"] = 3] = "BUNDLE_STATUS_INACTIVE";
19
+ BundleStatus[BundleStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
20
+ })(BundleStatus || (exports.BundleStatus = BundleStatus = {}));
21
+ var DiscountType;
22
+ (function (DiscountType) {
23
+ DiscountType[DiscountType["DISCOUNT_TYPE_UNSPECIFIED"] = 0] = "DISCOUNT_TYPE_UNSPECIFIED";
24
+ DiscountType[DiscountType["DISCOUNT_TYPE_PERCENTAGE"] = 1] = "DISCOUNT_TYPE_PERCENTAGE";
25
+ DiscountType[DiscountType["DISCOUNT_TYPE_FIXED_AMOUNT"] = 2] = "DISCOUNT_TYPE_FIXED_AMOUNT";
26
+ DiscountType[DiscountType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
27
+ })(DiscountType || (exports.DiscountType = DiscountType = {}));
28
+ exports.CATALOG_V1_PACKAGE_NAME = "catalog.v1";
29
+ function BundleServiceControllerMethods() {
30
+ return function (constructor) {
31
+ const grpcMethods = [
32
+ "getBundles",
33
+ "getBundle",
34
+ "createBundle",
35
+ "updateBundle",
36
+ "deleteBundle",
37
+ "addBundleItem",
38
+ "removeBundleItem",
39
+ "updateBundleItem",
40
+ "addBundleRule",
41
+ "removeBundleRule",
42
+ "getBundlesByProduct",
43
+ "bulkUpdateBundleStatus",
44
+ "bulkDeleteBundles",
45
+ "checkBundleAvailability",
46
+ ];
47
+ for (const method of grpcMethods) {
48
+ const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
49
+ (0, microservices_1.GrpcMethod)("BundleService", method)(constructor.prototype[method], method, descriptor);
50
+ }
51
+ const grpcStreamMethods = [];
52
+ for (const method of grpcStreamMethods) {
53
+ const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
54
+ (0, microservices_1.GrpcStreamMethod)("BundleService", method)(constructor.prototype[method], method, descriptor);
55
+ }
56
+ };
57
+ }
58
+ exports.BUNDLE_SERVICE_NAME = "BundleService";
@@ -7,6 +7,8 @@ export interface SizeChartResponse {
7
7
  [key: string]: string;
8
8
  };
9
9
  content: string;
10
+ imageUrl: string;
11
+ imageId: string;
10
12
  }
11
13
  export interface SizeChartResponse_NameEntry {
12
14
  key: string;
@@ -24,6 +26,8 @@ export interface CreateSizeChartRequest {
24
26
  [key: string]: string;
25
27
  };
26
28
  content: string;
29
+ imageUrl: string;
30
+ imageId: string;
27
31
  }
28
32
  export interface CreateSizeChartRequest_NameEntry {
29
33
  key: string;
@@ -35,6 +39,8 @@ export interface UpdateSizeChartRequest {
35
39
  [key: string]: string;
36
40
  };
37
41
  content: string;
42
+ imageUrl: string;
43
+ imageId: string;
38
44
  }
39
45
  export interface UpdateSizeChartRequest_NameEntry {
40
46
  key: string;
@@ -0,0 +1,265 @@
1
+ syntax = "proto3";
2
+
3
+ package catalog.v1;
4
+
5
+ import "common.proto";
6
+
7
+ service BundleService {
8
+ rpc GetBundles (GetBundlesRequest) returns (GetBundlesResponse);
9
+ rpc GetBundle (GetBundleRequest) returns (BundleDetailResponse);
10
+ rpc CreateBundle (CreateBundleRequest) returns (BundleDetailResponse);
11
+ rpc UpdateBundle (UpdateBundleRequest) returns (BundleDetailResponse);
12
+ rpc DeleteBundle (DeleteBundleRequest) returns (DeleteResponse);
13
+
14
+ rpc AddBundleItem (AddBundleItemRequest) returns (BundleDetailResponse);
15
+ rpc RemoveBundleItem (RemoveBundleItemRequest) returns (BundleDetailResponse);
16
+ rpc UpdateBundleItem (UpdateBundleItemRequest) returns (BundleDetailResponse);
17
+
18
+
19
+ rpc AddBundleRule (AddBundleRuleRequest) returns (SuccessResponse);
20
+ rpc RemoveBundleRule (RemoveBundleRuleRequest) returns (SuccessResponse);
21
+ rpc GetBundlesByProduct (GetBundlesByProductRequest) returns (GetBundlesResponse);
22
+
23
+
24
+ rpc BulkUpdateBundleStatus (BulkUpdateBundleStatusRequest) returns (SuccessResponse);
25
+ rpc BulkDeleteBundles (BulkDeleteBundlesRequest) returns (SuccessResponse);
26
+
27
+
28
+ rpc CheckBundleAvailability (CheckBundleAvailabilityRequest) returns (BundleAvailabilityResponse);
29
+ }
30
+
31
+
32
+ enum BundleStatus {
33
+ BUNDLE_STATUS_UNSPECIFIED = 0;
34
+ BUNDLE_STATUS_DRAFT = 1;
35
+ BUNDLE_STATUS_ACTIVE = 2;
36
+ BUNDLE_STATUS_INACTIVE = 3;
37
+ }
38
+
39
+ enum DiscountType {
40
+ DISCOUNT_TYPE_UNSPECIFIED = 0;
41
+ DISCOUNT_TYPE_PERCENTAGE = 1;
42
+ DISCOUNT_TYPE_FIXED_AMOUNT = 2;
43
+ }
44
+
45
+
46
+ message GetBundlesRequest {
47
+ PaginationRequest pagination = 1;
48
+ optional string search = 2;
49
+ optional BundleStatus status = 3;
50
+ optional string product_id = 4;
51
+ }
52
+
53
+ message GetBundleRequest {
54
+ string id = 1;
55
+ optional string slug = 2;
56
+ }
57
+
58
+ message CreateBundleRequest {
59
+ optional string slug = 1;
60
+ BundleStatus status = 2;
61
+
62
+ map<string, string> name = 3;
63
+ map<string, string> short_description = 4;
64
+ map<string, string> description = 5;
65
+
66
+ optional string main_image = 6;
67
+ optional string main_image_id = 7;
68
+
69
+ DiscountType discount_type = 8;
70
+ double discount_value = 9;
71
+ optional double fixed_price = 10;
72
+
73
+ bool is_exclusive = 11;
74
+ optional int32 sort_order = 12;
75
+
76
+ map<string, string> meta_title = 13;
77
+ map<string, string> meta_description = 14;
78
+
79
+ repeated BundleItemPayload items = 15;
80
+ string created_by_id = 16;
81
+ }
82
+
83
+ message UpdateBundleRequest {
84
+ string id = 1;
85
+ optional string slug = 2;
86
+ optional BundleStatus status = 3;
87
+
88
+ map<string, string> name = 4;
89
+ map<string, string> short_description = 5;
90
+ map<string, string> description = 6;
91
+
92
+ optional string main_image = 7;
93
+ optional string main_image_id = 8;
94
+
95
+ optional DiscountType discount_type = 9;
96
+ optional double discount_value = 10;
97
+ optional double fixed_price = 11;
98
+
99
+ optional bool is_exclusive = 12;
100
+ optional int32 sort_order = 13;
101
+
102
+ map<string, string> meta_title = 14;
103
+ map<string, string> meta_description = 15;
104
+
105
+ repeated BundleItemPayload items = 16;
106
+ }
107
+
108
+ message DeleteBundleRequest {
109
+ string id = 1;
110
+ }
111
+
112
+ message BundleItemPayload {
113
+ string product_id = 1;
114
+ optional string variant_id = 2;
115
+ int32 quantity = 3;
116
+ optional DiscountType item_discount_type = 4;
117
+ optional double item_discount_value = 5;
118
+ int32 sort_order = 6;
119
+ }
120
+
121
+ message AddBundleItemRequest {
122
+ string bundle_id = 1;
123
+ BundleItemPayload item = 2;
124
+ }
125
+
126
+ message RemoveBundleItemRequest {
127
+ string bundle_id = 1;
128
+ string item_id = 2;
129
+ }
130
+
131
+ message UpdateBundleItemRequest {
132
+ string bundle_id = 1;
133
+ string item_id = 2;
134
+ optional int32 quantity = 3;
135
+ optional DiscountType item_discount_type = 4;
136
+ optional double item_discount_value = 5;
137
+ optional int32 sort_order = 6;
138
+ }
139
+
140
+ message AddBundleRuleRequest {
141
+ string bundle_id = 1;
142
+ string rule_type = 2;
143
+ string target_id = 3;
144
+ repeated string excluded_product_ids = 4;
145
+ }
146
+
147
+ message RemoveBundleRuleRequest {
148
+ string bundle_id = 1;
149
+ string rule_id = 2;
150
+ }
151
+
152
+ message GetBundlesByProductRequest {
153
+ string product_id = 1;
154
+ optional BundleStatus status = 2;
155
+ }
156
+
157
+ message BulkUpdateBundleStatusRequest {
158
+ repeated string bundle_ids = 1;
159
+ BundleStatus status = 2;
160
+ }
161
+
162
+ message BulkDeleteBundlesRequest {
163
+ repeated string bundle_ids = 1;
164
+ }
165
+
166
+ message CheckBundleAvailabilityRequest {
167
+ string bundle_id = 1;
168
+ }
169
+
170
+
171
+ message GetBundlesResponse {
172
+ repeated BundleListItemResponse items = 1;
173
+ PaginationMeta meta = 2;
174
+ }
175
+
176
+ message BundleListItemResponse {
177
+ string id = 1;
178
+ string slug = 2;
179
+ BundleStatus status = 3;
180
+ map<string, string> name = 4;
181
+ string main_image = 5;
182
+
183
+ DiscountType discount_type = 6;
184
+ double discount_value = 7;
185
+ optional double fixed_price = 8;
186
+
187
+ bool is_exclusive = 9;
188
+ int32 sort_order = 10;
189
+
190
+ int32 item_count = 11;
191
+ double original_price = 12;
192
+ double final_price = 13;
193
+ bool in_stock = 14;
194
+ }
195
+
196
+ message BundleDetailResponse {
197
+ string id = 1;
198
+ string slug = 2;
199
+ BundleStatus status = 3;
200
+ int32 sort_order = 4;
201
+
202
+ map<string, string> name = 5;
203
+ map<string, string> short_description = 6;
204
+ map<string, string> description = 7;
205
+
206
+ string main_image = 8;
207
+ optional string main_image_id = 9;
208
+
209
+ DiscountType discount_type = 10;
210
+ double discount_value = 11;
211
+ optional double fixed_price = 12;
212
+
213
+ bool is_exclusive = 13;
214
+
215
+ map<string, string> meta_title = 14;
216
+ map<string, string> meta_description = 15;
217
+
218
+ repeated BundleItemResponse items = 16;
219
+ repeated BundleRuleResponse rules = 17;
220
+
221
+ double original_price = 18;
222
+ double final_price = 19;
223
+ bool in_stock = 20;
224
+ }
225
+
226
+ message BundleItemResponse {
227
+ string id = 1;
228
+ string product_id = 2;
229
+ optional string variant_id = 3;
230
+ int32 quantity = 4;
231
+ optional DiscountType item_discount_type = 5;
232
+ optional double item_discount_value = 6;
233
+ int32 sort_order = 7;
234
+
235
+
236
+ map<string, string> product_name = 8;
237
+ string product_image = 9;
238
+ string product_sku = 10;
239
+ double product_price = 11;
240
+ int32 product_stock = 12;
241
+ double item_final_price = 13;
242
+ }
243
+
244
+ message BundleRuleResponse {
245
+ string id = 1;
246
+ string rule_type = 2;
247
+ string target_id = 3;
248
+ repeated string excluded_product_ids = 4;
249
+
250
+
251
+ map<string, string> target_name = 5;
252
+ }
253
+
254
+ message BundleAvailabilityResponse {
255
+ bool available = 1;
256
+ repeated BundleItemAvailability items = 2;
257
+ }
258
+
259
+ message BundleItemAvailability {
260
+ string product_id = 1;
261
+ optional string variant_id = 2;
262
+ int32 required_quantity = 3;
263
+ int32 available_quantity = 4;
264
+ bool in_stock = 5;
265
+ }
@@ -19,6 +19,8 @@ message SizeChartResponse {
19
19
  string id = 1;
20
20
  map<string, string> name = 2;
21
21
  string content = 3;
22
+ string image_url = 4;
23
+ string image_id = 5;
22
24
  }
23
25
 
24
26
  message GetSizeChartsResponse {
@@ -33,12 +35,16 @@ message GetSizeChartRequest {
33
35
  message CreateSizeChartRequest {
34
36
  map<string, string> name = 1;
35
37
  string content = 2;
38
+ string image_url = 3;
39
+ string image_id = 4;
36
40
  }
37
41
 
38
42
  message UpdateSizeChartRequest {
39
43
  string id = 1;
40
44
  map<string, string> name = 2;
41
45
  string content = 3;
46
+ string image_url = 4;
47
+ string image_id = 5;
42
48
  }
43
49
 
44
50
  message DeleteSizeChartRequest {
@@ -11,6 +11,7 @@ export declare const PROTO_PATHS: {
11
11
  readonly SIZE_CHART: string;
12
12
  readonly STICKER: string;
13
13
  readonly STOCK: string;
14
+ readonly BUNDLE: string;
14
15
  readonly COMMON_PROMO: string;
15
16
  readonly CALCULATION: string;
16
17
  readonly COUPON: string;