@yolo-croket-dev/amqp-access 0.7.224 → 0.7.225

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 (21) hide show
  1. package/excel-upload-server/amqp.excel-upload-server.module.js +2 -0
  2. package/excel-upload-server/dto/ad-performance-report/command/create-sns-roas-report-excel-result.dto.d.ts +15 -0
  3. package/excel-upload-server/dto/ad-performance-report/command/create-sns-roas-report-excel-result.dto.js +2 -0
  4. package/excel-upload-server/dto/ad-performance-report/command/create-sns-roas-report-excel.dto.d.ts +30 -0
  5. package/excel-upload-server/dto/ad-performance-report/command/create-sns-roas-report-excel.dto.js +53 -0
  6. package/excel-upload-server/dto/ad-performance-report/command/index.d.ts +1 -0
  7. package/excel-upload-server/dto/ad-performance-report/command/index.js +17 -0
  8. package/excel-upload-server/dto/ad-performance-report/command/sns-roas-source-row.dto.d.ts +10 -0
  9. package/excel-upload-server/dto/ad-performance-report/command/sns-roas-source-row.dto.js +38 -0
  10. package/excel-upload-server/dto/ad-performance-report/index.d.ts +1 -0
  11. package/excel-upload-server/dto/ad-performance-report/index.js +17 -0
  12. package/excel-upload-server/dto/index.d.ts +1 -0
  13. package/excel-upload-server/dto/index.js +1 -0
  14. package/excel-upload-server/services/amqp.ad-performance-report.service.d.ts +14 -0
  15. package/excel-upload-server/services/amqp.ad-performance-report.service.js +38 -0
  16. package/excel-upload-server/services/index.d.ts +1 -0
  17. package/excel-upload-server/services/index.js +1 -0
  18. package/order-server/dto/purchased-info.modules/purchased-info-admin/command/upsert-invoice-bulk-for-admin.dto.d.ts +34 -0
  19. package/order-server/dto/purchased-info.modules/purchased-info-admin/command/upsert-invoice-bulk-for-admin.dto.js +56 -0
  20. package/package.json +1 -1
  21. package/store-item-server/dto/store-item/command/update-item-keywords-bulk.dto.js +0 -18
@@ -26,6 +26,7 @@ exports.AmqpExcelUploadServerModule = AmqpExcelUploadServerModule = __decorate([
26
26
  services_1.AmqpNaverSearchAdExcelService,
27
27
  services_1.AmqpSplitInvoiceExcelService,
28
28
  services_1.AmqpCrmCohortExcelService,
29
+ services_1.AmqpAdPerformanceReportService,
29
30
  ],
30
31
  exports: [
31
32
  services_1.AmqpStoreItemExcelService,
@@ -38,6 +39,7 @@ exports.AmqpExcelUploadServerModule = AmqpExcelUploadServerModule = __decorate([
38
39
  services_1.AmqpNaverSearchAdExcelService,
39
40
  services_1.AmqpSplitInvoiceExcelService,
40
41
  services_1.AmqpCrmCohortExcelService,
42
+ services_1.AmqpAdPerformanceReportService,
41
43
  ],
42
44
  })
43
45
  ], AmqpExcelUploadServerModule);
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @author jun
3
+ * @description SNS ROAS 엑셀 생성 AMQP 응답입니다.
4
+ * @process 생성된 파일과 처리 범위 및 처리 건수를 호출 서버에 반환합니다.
5
+ */
6
+ export interface CreateSnsRoasReportExcelResult {
7
+ downloadUrl: string;
8
+ endDate: string;
9
+ exchangeRateKrwPerUsd: number;
10
+ fileName: string;
11
+ resultRowCount: number;
12
+ sourceRowCount: number;
13
+ startDate: string;
14
+ transactionCount: number;
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @description SNS ROAS 엑셀 생성에 사용할 광고 소재별 일자 광고비입니다.
3
+ * @process 광고 소재명, 일자, USD 광고비의 형식과 범위를 검증합니다.
4
+ */
5
+ export declare class SnsRoasSourceRow {
6
+ adName: string;
7
+ date: string;
8
+ spendUsd: number;
9
+ }
10
+ /**
11
+ * @description SNS ROAS 엑셀 생성 AMQP 요청 Payload입니다.
12
+ * @process 관리자 Excel에서 추출한 광고 소재별 데이터를 검증하여 전달합니다.
13
+ */
14
+ export declare class CreateSnsRoasReportExcelPayload {
15
+ rows: SnsRoasSourceRow[];
16
+ }
17
+ /**
18
+ * @description SNS ROAS 엑셀 생성 AMQP 응답입니다.
19
+ * @process 생성된 파일과 처리 범위 및 처리 건수를 호출 서버에 반환합니다.
20
+ */
21
+ export interface CreateSnsRoasReportExcelResult {
22
+ downloadUrl: string;
23
+ endDate: string;
24
+ exchangeRateKrwPerUsd: number;
25
+ fileName: string;
26
+ resultRowCount: number;
27
+ sourceRowCount: number;
28
+ startDate: string;
29
+ transactionCount: number;
30
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateSnsRoasReportExcelPayload = exports.SnsRoasSourceRow = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * @description SNS ROAS 엑셀 생성에 사용할 광고 소재별 일자 광고비입니다.
17
+ * @process 광고 소재명, 일자, USD 광고비의 형식과 범위를 검증합니다.
18
+ */
19
+ class SnsRoasSourceRow {
20
+ }
21
+ exports.SnsRoasSourceRow = SnsRoasSourceRow;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], SnsRoasSourceRow.prototype, "adName", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsDateString)({ strict: true }),
29
+ __metadata("design:type", String)
30
+ ], SnsRoasSourceRow.prototype, "date", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsNumber)({
33
+ allowInfinity: false,
34
+ allowNaN: false,
35
+ }),
36
+ (0, class_validator_1.Min)(0),
37
+ __metadata("design:type", Number)
38
+ ], SnsRoasSourceRow.prototype, "spendUsd", void 0);
39
+ /**
40
+ * @description SNS ROAS 엑셀 생성 AMQP 요청 Payload입니다.
41
+ * @process 관리자 Excel에서 추출한 광고 소재별 데이터를 검증하여 전달합니다.
42
+ */
43
+ class CreateSnsRoasReportExcelPayload {
44
+ }
45
+ exports.CreateSnsRoasReportExcelPayload = CreateSnsRoasReportExcelPayload;
46
+ __decorate([
47
+ (0, class_validator_1.IsArray)(),
48
+ (0, class_validator_1.ArrayMinSize)(1),
49
+ (0, class_validator_1.ArrayMaxSize)(10000),
50
+ (0, class_validator_1.ValidateNested)({ each: true }),
51
+ (0, class_transformer_1.Type)(() => SnsRoasSourceRow),
52
+ __metadata("design:type", Array)
53
+ ], CreateSnsRoasReportExcelPayload.prototype, "rows", void 0);
@@ -0,0 +1 @@
1
+ export * from './create-sns-roas-report-excel.dto';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./create-sns-roas-report-excel.dto"), exports);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @author jun
3
+ * @description SNS ROAS 엑셀 생성에 사용할 광고 소재별 일자 광고비입니다.
4
+ * @process 광고 소재명, 일자, USD 광고비의 형식과 범위를 검증합니다.
5
+ */
6
+ export declare class SnsRoasSourceRow {
7
+ adName: string;
8
+ date: string;
9
+ spendUsd: number;
10
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SnsRoasSourceRow = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author jun
16
+ * @description SNS ROAS 엑셀 생성에 사용할 광고 소재별 일자 광고비입니다.
17
+ * @process 광고 소재명, 일자, USD 광고비의 형식과 범위를 검증합니다.
18
+ */
19
+ class SnsRoasSourceRow {
20
+ }
21
+ exports.SnsRoasSourceRow = SnsRoasSourceRow;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsNotEmpty)(),
25
+ __metadata("design:type", String)
26
+ ], SnsRoasSourceRow.prototype, "adName", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsDateString)({ strict: true }),
29
+ __metadata("design:type", String)
30
+ ], SnsRoasSourceRow.prototype, "date", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsNumber)({
33
+ allowInfinity: false,
34
+ allowNaN: false,
35
+ }),
36
+ (0, class_validator_1.Min)(0),
37
+ __metadata("design:type", Number)
38
+ ], SnsRoasSourceRow.prototype, "spendUsd", void 0);
@@ -0,0 +1 @@
1
+ export * from './command';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./command"), exports);
@@ -3,3 +3,4 @@ export * from './purchased-info-excel';
3
3
  export * from './store-item-excel';
4
4
  export * from './split-invoice-excel';
5
5
  export * from './crm-cohort-excel';
6
+ export * from './ad-performance-report';
@@ -19,3 +19,4 @@ __exportStar(require("./purchased-info-excel"), exports);
19
19
  __exportStar(require("./store-item-excel"), exports);
20
20
  __exportStar(require("./split-invoice-excel"), exports);
21
21
  __exportStar(require("./crm-cohort-excel"), exports);
22
+ __exportStar(require("./ad-performance-report"), exports);
@@ -0,0 +1,14 @@
1
+ import { ClientProxy } from '@nestjs/microservices';
2
+ import { AbstractParam } from '@yolo-croket-dev/core';
3
+ import { CreateSnsRoasReportExcelPayload, CreateSnsRoasReportExcelResult } from '../dto';
4
+ /**
5
+ * @author jun
6
+ * @description Excel Upload Server의 광고 성과 리포트 생성 기능을 호출합니다.
7
+ * @process 요청 Payload를 광고 성과 리포트 메시지 패턴으로 전달하고 생성 결과를 반환합니다.
8
+ */
9
+ export declare class AmqpAdPerformanceReportService {
10
+ private readonly client;
11
+ private readonly amqpManager;
12
+ constructor(client: ClientProxy);
13
+ createSnsRoasReportExcel(payload: CreateSnsRoasReportExcelPayload, param: AbstractParam): Promise<CreateSnsRoasReportExcelResult>;
14
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AmqpAdPerformanceReportService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const microservices_1 = require("@nestjs/microservices");
18
+ const functions_1 = require("@yolo-croket-dev/core/functions");
19
+ /**
20
+ * @author jun
21
+ * @description Excel Upload Server의 광고 성과 리포트 생성 기능을 호출합니다.
22
+ * @process 요청 Payload를 광고 성과 리포트 메시지 패턴으로 전달하고 생성 결과를 반환합니다.
23
+ */
24
+ let AmqpAdPerformanceReportService = class AmqpAdPerformanceReportService {
25
+ constructor(client) {
26
+ this.client = client;
27
+ this.amqpManager = new functions_1.AmqpManagement(this.client);
28
+ }
29
+ async createSnsRoasReportExcel(payload, param) {
30
+ return this.amqpManager.call('SNS ROAS 광고 성과 엑셀 생성', 'ad-performance-report.create-sns-roas-excel', payload, param, { isErrorThrowing: true });
31
+ }
32
+ };
33
+ exports.AmqpAdPerformanceReportService = AmqpAdPerformanceReportService;
34
+ exports.AmqpAdPerformanceReportService = AmqpAdPerformanceReportService = __decorate([
35
+ (0, common_1.Injectable)(),
36
+ __param(0, (0, common_1.Inject)('EXCEL_UPLOAD_SERVER_PROVIDER')),
37
+ __metadata("design:paramtypes", [microservices_1.ClientProxy])
38
+ ], AmqpAdPerformanceReportService);
@@ -7,3 +7,4 @@ export * from './amqp.log-elasticsearch.service';
7
7
  export * from './naver-search-ad.modules';
8
8
  export * from './amqp.split-invoice-excel.service';
9
9
  export * from './amqp.crm-cohort-excel.service';
10
+ export * from './amqp.ad-performance-report.service';
@@ -23,3 +23,4 @@ __exportStar(require("./amqp.log-elasticsearch.service"), exports);
23
23
  __exportStar(require("./naver-search-ad.modules"), exports);
24
24
  __exportStar(require("./amqp.split-invoice-excel.service"), exports);
25
25
  __exportStar(require("./amqp.crm-cohort-excel.service"), exports);
26
+ __exportStar(require("./amqp.ad-performance-report.service"), exports);
@@ -0,0 +1,34 @@
1
+ /** @description 관리자용 일괄 송장 등록/수정 개별 처리 결과 */
2
+ export interface UpsertInvoiceBulkForAdminResultItem {
3
+ pInfoId: string;
4
+ failType?: string;
5
+ reason?: string;
6
+ }
7
+ /**
8
+ * @author jun
9
+ * @description 관리자용 일괄 송장 등록/수정 payload
10
+ */
11
+ export declare class UpsertInvoiceBulkForAdminPayload {
12
+ /** 송장을 등록하거나 수정할 결제정보 ID 목록 */
13
+ pInfoIds: string[];
14
+ /** 택배사명 */
15
+ SCompany: string;
16
+ /** 송장번호 */
17
+ invoice: string;
18
+ /** 배송 조회 URL */
19
+ invoiceUrl?: string;
20
+ /** 택배사 직접 입력 여부 */
21
+ isDirectInput: boolean;
22
+ /** 구매자 알림 발송 여부 */
23
+ isNoti: boolean;
24
+ }
25
+ /**
26
+ * @author jun
27
+ * @description 관리자용 일괄 송장 등록/수정 결과
28
+ */
29
+ export declare class UpsertInvoiceBulkForAdminResult {
30
+ allCount: number;
31
+ successCount: number;
32
+ failCount: number;
33
+ results: UpsertInvoiceBulkForAdminResultItem[];
34
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpsertInvoiceBulkForAdminResult = exports.UpsertInvoiceBulkForAdminPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author jun
16
+ * @description 관리자용 일괄 송장 등록/수정 payload
17
+ */
18
+ class UpsertInvoiceBulkForAdminPayload {
19
+ }
20
+ exports.UpsertInvoiceBulkForAdminPayload = UpsertInvoiceBulkForAdminPayload;
21
+ __decorate([
22
+ (0, class_validator_1.IsArray)(),
23
+ (0, class_validator_1.ArrayMinSize)(1),
24
+ (0, class_validator_1.ArrayMaxSize)(50),
25
+ (0, class_validator_1.ArrayUnique)(),
26
+ (0, class_validator_1.IsMongoId)({ each: true }),
27
+ __metadata("design:type", Array)
28
+ ], UpsertInvoiceBulkForAdminPayload.prototype, "pInfoIds", void 0);
29
+ __decorate([
30
+ (0, class_validator_1.IsString)(),
31
+ __metadata("design:type", String)
32
+ ], UpsertInvoiceBulkForAdminPayload.prototype, "SCompany", void 0);
33
+ __decorate([
34
+ (0, class_validator_1.IsString)(),
35
+ __metadata("design:type", String)
36
+ ], UpsertInvoiceBulkForAdminPayload.prototype, "invoice", void 0);
37
+ __decorate([
38
+ (0, class_validator_1.IsOptional)(),
39
+ (0, class_validator_1.IsString)(),
40
+ __metadata("design:type", String)
41
+ ], UpsertInvoiceBulkForAdminPayload.prototype, "invoiceUrl", void 0);
42
+ __decorate([
43
+ (0, class_validator_1.IsBoolean)(),
44
+ __metadata("design:type", Boolean)
45
+ ], UpsertInvoiceBulkForAdminPayload.prototype, "isDirectInput", void 0);
46
+ __decorate([
47
+ (0, class_validator_1.IsBoolean)(),
48
+ __metadata("design:type", Boolean)
49
+ ], UpsertInvoiceBulkForAdminPayload.prototype, "isNoti", void 0);
50
+ /**
51
+ * @author jun
52
+ * @description 관리자용 일괄 송장 등록/수정 결과
53
+ */
54
+ class UpsertInvoiceBulkForAdminResult {
55
+ }
56
+ exports.UpsertInvoiceBulkForAdminResult = UpsertInvoiceBulkForAdminResult;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/amqp-access",
3
- "version": "0.7.224",
3
+ "version": "0.7.225",
4
4
  "main": "index.js",
5
5
  "author": "Yolo Co., Ltd.",
6
6
  "description": "크로켓 amqp-access npm",
@@ -32,24 +32,6 @@ __decorate([
32
32
  (0, class_transformer_1.Type)(() => UpdateItemKeywordsBulkData),
33
33
  __metadata("design:type", Array)
34
34
  ], UpdateItemKeywordsBulkPayload.prototype, "itemInfos", void 0);
35
- // export enum ItemKeywordBulkFailureResolution {
36
- // OVERWRITE_AVAILABLE = 'OVERWRITE_AVAILABLE',
37
- // NOT_AVAILABLE = 'NOT_AVAILABLE',
38
- // }
39
- // export class ItemKeywordBulkFailure {
40
- // itemId!: string;
41
- // reasonCode!: string;
42
- // reasonMessage!: string;
43
- // resolution!: ItemKeywordBulkFailureResolution;
44
- // existingItemKeywords!: StoreItemKeyword[];
45
- // requestedItemKeywords!: StoreItemKeyword[];
46
- // }
47
35
  class UpdateItemKeywordsBulkResult {
48
36
  }
49
37
  exports.UpdateItemKeywordsBulkResult = UpdateItemKeywordsBulkResult;
50
- // export class OverwriteItemKeywordsBulkPayload {
51
- // @IsArray()
52
- // @ValidateNested({ each: true })
53
- // @Type(() => UpdateItemKeywordsBulkData)
54
- // itemInfos!: UpdateItemKeywordsBulkData[];
55
- // }