@mamindom/contracts 1.0.100 → 1.0.102
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.
- package/dist/gen/bundle.d.ts +14 -0
- package/dist/gen/bundle.js +1 -0
- package/dist/gen/product.d.ts +3 -0
- package/dist/gen/promotion.d.ts +27 -0
- package/dist/gen/promotion.js +3 -0
- package/dist/proto/bundle.proto +19 -0
- package/dist/proto/product.proto +8 -5
- package/dist/proto/promotion.proto +32 -0
- package/gen/bundle.ts +22 -0
- package/gen/product.ts +3 -0
- package/gen/promotion.ts +49 -0
- package/package.json +1 -1
- package/proto/bundle.proto +19 -0
- package/proto/product.proto +8 -5
- package/proto/promotion.proto +32 -0
package/dist/gen/bundle.d.ts
CHANGED
|
@@ -386,6 +386,18 @@ export interface GenerateBundleCollageResponse {
|
|
|
386
386
|
height: number;
|
|
387
387
|
bundleId: string;
|
|
388
388
|
}
|
|
389
|
+
export interface BulkLookupBundlesRequest {
|
|
390
|
+
slugs: string[];
|
|
391
|
+
}
|
|
392
|
+
export interface BundleLookupResult {
|
|
393
|
+
slug: string;
|
|
394
|
+
bundleId: string;
|
|
395
|
+
nameUk: string;
|
|
396
|
+
found: boolean;
|
|
397
|
+
}
|
|
398
|
+
export interface BulkLookupBundlesResponse {
|
|
399
|
+
results: BundleLookupResult[];
|
|
400
|
+
}
|
|
389
401
|
export declare const CATALOG_V1_PACKAGE_NAME = "catalog.v1";
|
|
390
402
|
export interface BundleServiceClient {
|
|
391
403
|
getBundles(request: GetBundlesRequest): Observable<GetBundlesResponse>;
|
|
@@ -408,6 +420,7 @@ export interface BundleServiceClient {
|
|
|
408
420
|
exportBundles(request: ExportBundlesRequest): Observable<ExportBundlesResponse>;
|
|
409
421
|
addCrossSellLink(request: AddCrossSellLinkRequest): Observable<SuccessResponse>;
|
|
410
422
|
generateBundleCollage(request: GenerateBundleCollageRequest): Observable<GenerateBundleCollageResponse>;
|
|
423
|
+
bulkLookupBundles(request: BulkLookupBundlesRequest): Observable<BulkLookupBundlesResponse>;
|
|
411
424
|
}
|
|
412
425
|
export interface BundleServiceController {
|
|
413
426
|
getBundles(request: GetBundlesRequest): Promise<GetBundlesResponse> | Observable<GetBundlesResponse> | GetBundlesResponse;
|
|
@@ -430,6 +443,7 @@ export interface BundleServiceController {
|
|
|
430
443
|
exportBundles(request: ExportBundlesRequest): Promise<ExportBundlesResponse> | Observable<ExportBundlesResponse> | ExportBundlesResponse;
|
|
431
444
|
addCrossSellLink(request: AddCrossSellLinkRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
432
445
|
generateBundleCollage(request: GenerateBundleCollageRequest): Promise<GenerateBundleCollageResponse> | Observable<GenerateBundleCollageResponse> | GenerateBundleCollageResponse;
|
|
446
|
+
bulkLookupBundles(request: BulkLookupBundlesRequest): Promise<BulkLookupBundlesResponse> | Observable<BulkLookupBundlesResponse> | BulkLookupBundlesResponse;
|
|
433
447
|
}
|
|
434
448
|
export declare function BundleServiceControllerMethods(): (constructor: Function) => void;
|
|
435
449
|
export declare const BUNDLE_SERVICE_NAME = "BundleService";
|
package/dist/gen/bundle.js
CHANGED
|
@@ -78,6 +78,7 @@ function BundleServiceControllerMethods() {
|
|
|
78
78
|
"exportBundles",
|
|
79
79
|
"addCrossSellLink",
|
|
80
80
|
"generateBundleCollage",
|
|
81
|
+
"bulkLookupBundles",
|
|
81
82
|
];
|
|
82
83
|
for (const method of grpcMethods) {
|
|
83
84
|
const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/dist/gen/product.d.ts
CHANGED
package/dist/gen/promotion.d.ts
CHANGED
|
@@ -345,6 +345,25 @@ export interface SetPromotionBrandsRequest {
|
|
|
345
345
|
promotionId: string;
|
|
346
346
|
brandIds: string[];
|
|
347
347
|
}
|
|
348
|
+
export interface GetPromotionBundlesRequest {
|
|
349
|
+
promotionId: string;
|
|
350
|
+
}
|
|
351
|
+
export interface PromotionBundleItem {
|
|
352
|
+
id: string;
|
|
353
|
+
bundleId: string;
|
|
354
|
+
}
|
|
355
|
+
export interface GetPromotionBundlesResponse {
|
|
356
|
+
items: PromotionBundleItem[];
|
|
357
|
+
total: number;
|
|
358
|
+
}
|
|
359
|
+
export interface AddPromotionBundlesRequest {
|
|
360
|
+
promotionId: string;
|
|
361
|
+
bundleIds: string[];
|
|
362
|
+
}
|
|
363
|
+
export interface RemovePromotionBundlesRequest {
|
|
364
|
+
promotionId: string;
|
|
365
|
+
bundleIds: string[];
|
|
366
|
+
}
|
|
348
367
|
export declare const PROMO_V1_PACKAGE_NAME = "promo.v1";
|
|
349
368
|
export interface PromotionServiceClient {
|
|
350
369
|
getPromotions(request: GetPromotionsRequest): Observable<GetPromotionsResponse>;
|
|
@@ -366,6 +385,10 @@ export interface PromotionServiceClient {
|
|
|
366
385
|
/** Brands */
|
|
367
386
|
getPromotionBrands(request: GetPromotionBrandsRequest): Observable<GetPromotionBrandsResponse>;
|
|
368
387
|
setPromotionBrands(request: SetPromotionBrandsRequest): Observable<SuccessResponse>;
|
|
388
|
+
/** Bundles */
|
|
389
|
+
getPromotionBundles(request: GetPromotionBundlesRequest): Observable<GetPromotionBundlesResponse>;
|
|
390
|
+
addPromotionBundles(request: AddPromotionBundlesRequest): Observable<SuccessResponse>;
|
|
391
|
+
removePromotionBundles(request: RemovePromotionBundlesRequest): Observable<SuccessResponse>;
|
|
369
392
|
}
|
|
370
393
|
export interface PromotionServiceController {
|
|
371
394
|
getPromotions(request: GetPromotionsRequest): Promise<GetPromotionsResponse> | Observable<GetPromotionsResponse> | GetPromotionsResponse;
|
|
@@ -387,6 +410,10 @@ export interface PromotionServiceController {
|
|
|
387
410
|
/** Brands */
|
|
388
411
|
getPromotionBrands(request: GetPromotionBrandsRequest): Promise<GetPromotionBrandsResponse> | Observable<GetPromotionBrandsResponse> | GetPromotionBrandsResponse;
|
|
389
412
|
setPromotionBrands(request: SetPromotionBrandsRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
413
|
+
/** Bundles */
|
|
414
|
+
getPromotionBundles(request: GetPromotionBundlesRequest): Promise<GetPromotionBundlesResponse> | Observable<GetPromotionBundlesResponse> | GetPromotionBundlesResponse;
|
|
415
|
+
addPromotionBundles(request: AddPromotionBundlesRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
416
|
+
removePromotionBundles(request: RemovePromotionBundlesRequest): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
390
417
|
}
|
|
391
418
|
export declare function PromotionServiceControllerMethods(): (constructor: Function) => void;
|
|
392
419
|
export declare const PROMOTION_SERVICE_NAME = "PromotionService";
|
package/dist/gen/promotion.js
CHANGED
|
@@ -90,6 +90,9 @@ function PromotionServiceControllerMethods() {
|
|
|
90
90
|
"setPromotionCategories",
|
|
91
91
|
"getPromotionBrands",
|
|
92
92
|
"setPromotionBrands",
|
|
93
|
+
"getPromotionBundles",
|
|
94
|
+
"addPromotionBundles",
|
|
95
|
+
"removePromotionBundles",
|
|
93
96
|
];
|
|
94
97
|
for (const method of grpcMethods) {
|
|
95
98
|
const descriptor = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/dist/proto/bundle.proto
CHANGED
|
@@ -33,6 +33,8 @@ service BundleService {
|
|
|
33
33
|
rpc AddCrossSellLink (AddCrossSellLinkRequest) returns (SuccessResponse);
|
|
34
34
|
|
|
35
35
|
rpc GenerateBundleCollage (GenerateBundleCollageRequest) returns (GenerateBundleCollageResponse);
|
|
36
|
+
|
|
37
|
+
rpc BulkLookupBundles (BulkLookupBundlesRequest) returns (BulkLookupBundlesResponse);
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
|
|
@@ -371,3 +373,20 @@ message GenerateBundleCollageResponse {
|
|
|
371
373
|
int32 height = 4; // Final image height in pixels
|
|
372
374
|
string bundle_id = 5;
|
|
373
375
|
}
|
|
376
|
+
|
|
377
|
+
// ── Bulk Lookup ──────────────────────────────────────────────────────────────
|
|
378
|
+
|
|
379
|
+
message BulkLookupBundlesRequest {
|
|
380
|
+
repeated string slugs = 1;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
message BundleLookupResult {
|
|
384
|
+
string slug = 1;
|
|
385
|
+
string bundle_id = 2;
|
|
386
|
+
string name_uk = 3;
|
|
387
|
+
bool found = 4;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
message BulkLookupBundlesResponse {
|
|
391
|
+
repeated BundleLookupResult results = 1;
|
|
392
|
+
}
|
package/dist/proto/product.proto
CHANGED
|
@@ -694,11 +694,14 @@ enum IdentifierType {
|
|
|
694
694
|
}
|
|
695
695
|
|
|
696
696
|
message ProductLookupResult {
|
|
697
|
-
string identifier
|
|
698
|
-
string product_id
|
|
699
|
-
string sku
|
|
700
|
-
string name_uk
|
|
701
|
-
bool found
|
|
697
|
+
string identifier = 1;
|
|
698
|
+
string product_id = 2;
|
|
699
|
+
string sku = 3;
|
|
700
|
+
string name_uk = 4;
|
|
701
|
+
bool found = 5;
|
|
702
|
+
string main_image = 6;
|
|
703
|
+
double price = 7;
|
|
704
|
+
int32 stock = 8;
|
|
702
705
|
}
|
|
703
706
|
|
|
704
707
|
message BulkLookupProductsRequest {
|
|
@@ -30,6 +30,11 @@ service PromotionService {
|
|
|
30
30
|
// Brands
|
|
31
31
|
rpc GetPromotionBrands (GetPromotionBrandsRequest) returns (GetPromotionBrandsResponse);
|
|
32
32
|
rpc SetPromotionBrands (SetPromotionBrandsRequest) returns (SuccessResponse);
|
|
33
|
+
|
|
34
|
+
// Bundles
|
|
35
|
+
rpc GetPromotionBundles (GetPromotionBundlesRequest) returns (GetPromotionBundlesResponse);
|
|
36
|
+
rpc AddPromotionBundles (AddPromotionBundlesRequest) returns (SuccessResponse);
|
|
37
|
+
rpc RemovePromotionBundles (RemovePromotionBundlesRequest) returns (SuccessResponse);
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
|
|
@@ -382,3 +387,30 @@ message SetPromotionBrandsRequest {
|
|
|
382
387
|
string promotion_id = 1;
|
|
383
388
|
repeated string brand_ids = 2;
|
|
384
389
|
}
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
// ─── Bundles ──────────────────────────────────────────────────────────────────
|
|
393
|
+
|
|
394
|
+
message GetPromotionBundlesRequest {
|
|
395
|
+
string promotion_id = 1;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
message PromotionBundleItem {
|
|
399
|
+
string id = 1;
|
|
400
|
+
string bundle_id = 2;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
message GetPromotionBundlesResponse {
|
|
404
|
+
repeated PromotionBundleItem items = 1;
|
|
405
|
+
int32 total = 2;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
message AddPromotionBundlesRequest {
|
|
409
|
+
string promotion_id = 1;
|
|
410
|
+
repeated string bundle_ids = 2;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
message RemovePromotionBundlesRequest {
|
|
414
|
+
string promotion_id = 1;
|
|
415
|
+
repeated string bundle_ids = 2;
|
|
416
|
+
}
|
package/gen/bundle.ts
CHANGED
|
@@ -416,6 +416,21 @@ export interface GenerateBundleCollageResponse {
|
|
|
416
416
|
bundleId: string;
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
+
export interface BulkLookupBundlesRequest {
|
|
420
|
+
slugs: string[];
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
export interface BundleLookupResult {
|
|
424
|
+
slug: string;
|
|
425
|
+
bundleId: string;
|
|
426
|
+
nameUk: string;
|
|
427
|
+
found: boolean;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
export interface BulkLookupBundlesResponse {
|
|
431
|
+
results: BundleLookupResult[];
|
|
432
|
+
}
|
|
433
|
+
|
|
419
434
|
export const CATALOG_V1_PACKAGE_NAME = "catalog.v1";
|
|
420
435
|
|
|
421
436
|
export interface BundleServiceClient {
|
|
@@ -458,6 +473,8 @@ export interface BundleServiceClient {
|
|
|
458
473
|
addCrossSellLink(request: AddCrossSellLinkRequest): Observable<SuccessResponse>;
|
|
459
474
|
|
|
460
475
|
generateBundleCollage(request: GenerateBundleCollageRequest): Observable<GenerateBundleCollageResponse>;
|
|
476
|
+
|
|
477
|
+
bulkLookupBundles(request: BulkLookupBundlesRequest): Observable<BulkLookupBundlesResponse>;
|
|
461
478
|
}
|
|
462
479
|
|
|
463
480
|
export interface BundleServiceController {
|
|
@@ -538,6 +555,10 @@ export interface BundleServiceController {
|
|
|
538
555
|
generateBundleCollage(
|
|
539
556
|
request: GenerateBundleCollageRequest,
|
|
540
557
|
): Promise<GenerateBundleCollageResponse> | Observable<GenerateBundleCollageResponse> | GenerateBundleCollageResponse;
|
|
558
|
+
|
|
559
|
+
bulkLookupBundles(
|
|
560
|
+
request: BulkLookupBundlesRequest,
|
|
561
|
+
): Promise<BulkLookupBundlesResponse> | Observable<BulkLookupBundlesResponse> | BulkLookupBundlesResponse;
|
|
541
562
|
}
|
|
542
563
|
|
|
543
564
|
export function BundleServiceControllerMethods() {
|
|
@@ -563,6 +584,7 @@ export function BundleServiceControllerMethods() {
|
|
|
563
584
|
"exportBundles",
|
|
564
585
|
"addCrossSellLink",
|
|
565
586
|
"generateBundleCollage",
|
|
587
|
+
"bulkLookupBundles",
|
|
566
588
|
];
|
|
567
589
|
for (const method of grpcMethods) {
|
|
568
590
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/gen/product.ts
CHANGED
package/gen/promotion.ts
CHANGED
|
@@ -381,6 +381,30 @@ export interface SetPromotionBrandsRequest {
|
|
|
381
381
|
brandIds: string[];
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
+
export interface GetPromotionBundlesRequest {
|
|
385
|
+
promotionId: string;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
export interface PromotionBundleItem {
|
|
389
|
+
id: string;
|
|
390
|
+
bundleId: string;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
export interface GetPromotionBundlesResponse {
|
|
394
|
+
items: PromotionBundleItem[];
|
|
395
|
+
total: number;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
export interface AddPromotionBundlesRequest {
|
|
399
|
+
promotionId: string;
|
|
400
|
+
bundleIds: string[];
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export interface RemovePromotionBundlesRequest {
|
|
404
|
+
promotionId: string;
|
|
405
|
+
bundleIds: string[];
|
|
406
|
+
}
|
|
407
|
+
|
|
384
408
|
export const PROMO_V1_PACKAGE_NAME = "promo.v1";
|
|
385
409
|
|
|
386
410
|
export interface PromotionServiceClient {
|
|
@@ -421,6 +445,14 @@ export interface PromotionServiceClient {
|
|
|
421
445
|
getPromotionBrands(request: GetPromotionBrandsRequest): Observable<GetPromotionBrandsResponse>;
|
|
422
446
|
|
|
423
447
|
setPromotionBrands(request: SetPromotionBrandsRequest): Observable<SuccessResponse>;
|
|
448
|
+
|
|
449
|
+
/** Bundles */
|
|
450
|
+
|
|
451
|
+
getPromotionBundles(request: GetPromotionBundlesRequest): Observable<GetPromotionBundlesResponse>;
|
|
452
|
+
|
|
453
|
+
addPromotionBundles(request: AddPromotionBundlesRequest): Observable<SuccessResponse>;
|
|
454
|
+
|
|
455
|
+
removePromotionBundles(request: RemovePromotionBundlesRequest): Observable<SuccessResponse>;
|
|
424
456
|
}
|
|
425
457
|
|
|
426
458
|
export interface PromotionServiceController {
|
|
@@ -496,6 +528,20 @@ export interface PromotionServiceController {
|
|
|
496
528
|
setPromotionBrands(
|
|
497
529
|
request: SetPromotionBrandsRequest,
|
|
498
530
|
): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
531
|
+
|
|
532
|
+
/** Bundles */
|
|
533
|
+
|
|
534
|
+
getPromotionBundles(
|
|
535
|
+
request: GetPromotionBundlesRequest,
|
|
536
|
+
): Promise<GetPromotionBundlesResponse> | Observable<GetPromotionBundlesResponse> | GetPromotionBundlesResponse;
|
|
537
|
+
|
|
538
|
+
addPromotionBundles(
|
|
539
|
+
request: AddPromotionBundlesRequest,
|
|
540
|
+
): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
541
|
+
|
|
542
|
+
removePromotionBundles(
|
|
543
|
+
request: RemovePromotionBundlesRequest,
|
|
544
|
+
): Promise<SuccessResponse> | Observable<SuccessResponse> | SuccessResponse;
|
|
499
545
|
}
|
|
500
546
|
|
|
501
547
|
export function PromotionServiceControllerMethods() {
|
|
@@ -517,6 +563,9 @@ export function PromotionServiceControllerMethods() {
|
|
|
517
563
|
"setPromotionCategories",
|
|
518
564
|
"getPromotionBrands",
|
|
519
565
|
"setPromotionBrands",
|
|
566
|
+
"getPromotionBundles",
|
|
567
|
+
"addPromotionBundles",
|
|
568
|
+
"removePromotionBundles",
|
|
520
569
|
];
|
|
521
570
|
for (const method of grpcMethods) {
|
|
522
571
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
package/package.json
CHANGED
package/proto/bundle.proto
CHANGED
|
@@ -33,6 +33,8 @@ service BundleService {
|
|
|
33
33
|
rpc AddCrossSellLink (AddCrossSellLinkRequest) returns (SuccessResponse);
|
|
34
34
|
|
|
35
35
|
rpc GenerateBundleCollage (GenerateBundleCollageRequest) returns (GenerateBundleCollageResponse);
|
|
36
|
+
|
|
37
|
+
rpc BulkLookupBundles (BulkLookupBundlesRequest) returns (BulkLookupBundlesResponse);
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
|
|
@@ -371,3 +373,20 @@ message GenerateBundleCollageResponse {
|
|
|
371
373
|
int32 height = 4; // Final image height in pixels
|
|
372
374
|
string bundle_id = 5;
|
|
373
375
|
}
|
|
376
|
+
|
|
377
|
+
// ── Bulk Lookup ──────────────────────────────────────────────────────────────
|
|
378
|
+
|
|
379
|
+
message BulkLookupBundlesRequest {
|
|
380
|
+
repeated string slugs = 1;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
message BundleLookupResult {
|
|
384
|
+
string slug = 1;
|
|
385
|
+
string bundle_id = 2;
|
|
386
|
+
string name_uk = 3;
|
|
387
|
+
bool found = 4;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
message BulkLookupBundlesResponse {
|
|
391
|
+
repeated BundleLookupResult results = 1;
|
|
392
|
+
}
|
package/proto/product.proto
CHANGED
|
@@ -694,11 +694,14 @@ enum IdentifierType {
|
|
|
694
694
|
}
|
|
695
695
|
|
|
696
696
|
message ProductLookupResult {
|
|
697
|
-
string identifier
|
|
698
|
-
string product_id
|
|
699
|
-
string sku
|
|
700
|
-
string name_uk
|
|
701
|
-
bool found
|
|
697
|
+
string identifier = 1;
|
|
698
|
+
string product_id = 2;
|
|
699
|
+
string sku = 3;
|
|
700
|
+
string name_uk = 4;
|
|
701
|
+
bool found = 5;
|
|
702
|
+
string main_image = 6;
|
|
703
|
+
double price = 7;
|
|
704
|
+
int32 stock = 8;
|
|
702
705
|
}
|
|
703
706
|
|
|
704
707
|
message BulkLookupProductsRequest {
|
package/proto/promotion.proto
CHANGED
|
@@ -30,6 +30,11 @@ service PromotionService {
|
|
|
30
30
|
// Brands
|
|
31
31
|
rpc GetPromotionBrands (GetPromotionBrandsRequest) returns (GetPromotionBrandsResponse);
|
|
32
32
|
rpc SetPromotionBrands (SetPromotionBrandsRequest) returns (SuccessResponse);
|
|
33
|
+
|
|
34
|
+
// Bundles
|
|
35
|
+
rpc GetPromotionBundles (GetPromotionBundlesRequest) returns (GetPromotionBundlesResponse);
|
|
36
|
+
rpc AddPromotionBundles (AddPromotionBundlesRequest) returns (SuccessResponse);
|
|
37
|
+
rpc RemovePromotionBundles (RemovePromotionBundlesRequest) returns (SuccessResponse);
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
|
|
@@ -382,3 +387,30 @@ message SetPromotionBrandsRequest {
|
|
|
382
387
|
string promotion_id = 1;
|
|
383
388
|
repeated string brand_ids = 2;
|
|
384
389
|
}
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
// ─── Bundles ──────────────────────────────────────────────────────────────────
|
|
393
|
+
|
|
394
|
+
message GetPromotionBundlesRequest {
|
|
395
|
+
string promotion_id = 1;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
message PromotionBundleItem {
|
|
399
|
+
string id = 1;
|
|
400
|
+
string bundle_id = 2;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
message GetPromotionBundlesResponse {
|
|
404
|
+
repeated PromotionBundleItem items = 1;
|
|
405
|
+
int32 total = 2;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
message AddPromotionBundlesRequest {
|
|
409
|
+
string promotion_id = 1;
|
|
410
|
+
repeated string bundle_ids = 2;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
message RemovePromotionBundlesRequest {
|
|
414
|
+
string promotion_id = 1;
|
|
415
|
+
repeated string bundle_ids = 2;
|
|
416
|
+
}
|