@yolo-croket-dev/amqp-access 0.7.29 → 0.7.31-slowquery.0

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 (22) hide show
  1. package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.d.ts +1 -0
  2. package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.js +1 -0
  3. package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/run-naver-search-ad-excel-full-process.dto.d.ts +34 -0
  4. package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/run-naver-search-ad-excel-full-process.dto.js +112 -0
  5. package/excel-upload-server/services/naver-search-ad.modules/amqp.naver-search-ad-excel.service.d.ts +8 -1
  6. package/excel-upload-server/services/naver-search-ad.modules/amqp.naver-search-ad-excel.service.js +9 -0
  7. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.d.ts +3 -0
  8. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.js +3 -0
  9. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/process-aggregation-purchased-info.dto.d.ts +12 -0
  10. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/process-aggregation-purchased-info.dto.js +29 -0
  11. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/process-naver-search-ad-excel-init.dto.d.ts +30 -0
  12. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/process-naver-search-ad-excel-init.dto.js +112 -0
  13. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/process-search-naver-sa.dto.d.ts +12 -0
  14. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/process-search-naver-sa.dto.js +29 -0
  15. package/order-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/run-naver-search-ad-excel-process.dto.d.ts +1 -2
  16. package/package.json +1 -1
  17. package/user-service/dto/user/command/app-switching-reward.dto.d.ts +4 -0
  18. package/user-service/dto/user/command/app-switching-reward.dto.js +2 -0
  19. package/user-service/dto/user/command/index.d.ts +1 -0
  20. package/user-service/dto/user/command/index.js +1 -0
  21. package/user-service/services/amqp.user-entity.service.d.ts +2 -1
  22. package/user-service/services/amqp.user-entity.service.js +3 -0
@@ -1 +1,2 @@
1
1
  export * from './generate-naver-search-ad-excel.dto';
2
+ export * from './run-naver-search-ad-excel-full-process.dto';
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./generate-naver-search-ad-excel.dto"), exports);
18
+ __exportStar(require("./run-naver-search-ad-excel-full-process.dto"), exports);
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @author jun
3
+ * @description 네이버 검색광고 엑셀 전체 프로세스 실행 DTO (excel-upload-server 진입점)
4
+ * @process 1. 검색 조건 수신 → 2. order-server 단계별 호출 → 3. 엑셀 생성 → 4. Slack 알림
5
+ */
6
+ /**
7
+ * 네이버 검색광고 엑셀 전체 프로세스 실행 Payload
8
+ */
9
+ export declare class RunNaverSearchAdExcelFullProcessPayload {
10
+ /** 캠페인 ID (선택) */
11
+ nccCampaignId?: string;
12
+ /** 광고그룹 ID (선택) */
13
+ nccAdgroupId?: string;
14
+ /** 소재 ID (선택) */
15
+ adId?: string;
16
+ /** 상품 ID (선택) */
17
+ itemId?: string;
18
+ /** 결제 시작일 YYYY-MM-DD (필수) */
19
+ paymentSDate: string;
20
+ /** 결제 종료일 YYYY-MM-DD (필수) */
21
+ paymentEDate: string;
22
+ /** ROAS 시작값 (선택) */
23
+ roasStart?: number;
24
+ /** ROAS 종료값 (선택) */
25
+ roasEnd?: number;
26
+ /** 30일 ROAS 시작값 (선택) */
27
+ roas30Start?: number;
28
+ /** 30일 ROAS 종료값 (선택) */
29
+ roas30End?: number;
30
+ /** 입찰가 시작값 (선택) */
31
+ bidAmtStart?: number;
32
+ /** 입찰가 종료값 (선택) */
33
+ bidAmtEnd?: number;
34
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /**
3
+ * @author jun
4
+ * @description 네이버 검색광고 엑셀 전체 프로세스 실행 DTO (excel-upload-server 진입점)
5
+ * @process 1. 검색 조건 수신 → 2. order-server 단계별 호출 → 3. 엑셀 생성 → 4. Slack 알림
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ 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;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.RunNaverSearchAdExcelFullProcessPayload = void 0;
18
+ const class_validator_1 = require("class-validator");
19
+ function getDaysDifference(startDateStr, endDateStr) {
20
+ const startDate = new Date(startDateStr);
21
+ const endDate = new Date(endDateStr);
22
+ const diffTime = endDate.getTime() - startDate.getTime();
23
+ return Math.floor(diffTime / (1000 * 60 * 60 * 24));
24
+ }
25
+ let DateRangeMax30DaysConstraint = class DateRangeMax30DaysConstraint {
26
+ validate(_value, args) {
27
+ const object = args.object;
28
+ const { paymentSDate, paymentEDate } = object;
29
+ try {
30
+ const diff = getDaysDifference(paymentSDate, paymentEDate);
31
+ return diff >= 0 && diff <= 30;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ defaultMessage() {
38
+ return '날짜 기간은 최대 30일까지만 가능합니다.';
39
+ }
40
+ };
41
+ DateRangeMax30DaysConstraint = __decorate([
42
+ (0, class_validator_1.ValidatorConstraint)({ name: 'dateRangeMax30Days', async: false })
43
+ ], DateRangeMax30DaysConstraint);
44
+ /**
45
+ * 네이버 검색광고 엑셀 전체 프로세스 실행 Payload
46
+ */
47
+ class RunNaverSearchAdExcelFullProcessPayload {
48
+ }
49
+ exports.RunNaverSearchAdExcelFullProcessPayload = RunNaverSearchAdExcelFullProcessPayload;
50
+ __decorate([
51
+ (0, class_validator_1.IsString)(),
52
+ (0, class_validator_1.IsOptional)(),
53
+ __metadata("design:type", String)
54
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "nccCampaignId", void 0);
55
+ __decorate([
56
+ (0, class_validator_1.IsString)(),
57
+ (0, class_validator_1.IsOptional)(),
58
+ __metadata("design:type", String)
59
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "nccAdgroupId", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsString)(),
62
+ (0, class_validator_1.IsOptional)(),
63
+ __metadata("design:type", String)
64
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "adId", void 0);
65
+ __decorate([
66
+ (0, class_validator_1.IsString)(),
67
+ (0, class_validator_1.IsOptional)(),
68
+ __metadata("design:type", String)
69
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "itemId", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsString)(),
72
+ (0, class_validator_1.IsNotEmpty)(),
73
+ (0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}$/, { message: 'paymentSDate는 YYYY-MM-DD 형식이어야 합니다.' }),
74
+ (0, class_validator_1.Validate)(DateRangeMax30DaysConstraint),
75
+ __metadata("design:type", String)
76
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "paymentSDate", void 0);
77
+ __decorate([
78
+ (0, class_validator_1.IsString)(),
79
+ (0, class_validator_1.IsNotEmpty)(),
80
+ (0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}$/, { message: 'paymentEDate는 YYYY-MM-DD 형식이어야 합니다.' }),
81
+ __metadata("design:type", String)
82
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "paymentEDate", void 0);
83
+ __decorate([
84
+ (0, class_validator_1.IsNumber)(),
85
+ (0, class_validator_1.IsOptional)(),
86
+ __metadata("design:type", Number)
87
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "roasStart", void 0);
88
+ __decorate([
89
+ (0, class_validator_1.IsNumber)(),
90
+ (0, class_validator_1.IsOptional)(),
91
+ __metadata("design:type", Number)
92
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "roasEnd", void 0);
93
+ __decorate([
94
+ (0, class_validator_1.IsNumber)(),
95
+ (0, class_validator_1.IsOptional)(),
96
+ __metadata("design:type", Number)
97
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "roas30Start", void 0);
98
+ __decorate([
99
+ (0, class_validator_1.IsNumber)(),
100
+ (0, class_validator_1.IsOptional)(),
101
+ __metadata("design:type", Number)
102
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "roas30End", void 0);
103
+ __decorate([
104
+ (0, class_validator_1.IsNumber)(),
105
+ (0, class_validator_1.IsOptional)(),
106
+ __metadata("design:type", Number)
107
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "bidAmtStart", void 0);
108
+ __decorate([
109
+ (0, class_validator_1.IsNumber)(),
110
+ (0, class_validator_1.IsOptional)(),
111
+ __metadata("design:type", Number)
112
+ ], RunNaverSearchAdExcelFullProcessPayload.prototype, "bidAmtEnd", void 0);
@@ -1,9 +1,16 @@
1
1
  import { ClientProxy } from '@nestjs/microservices';
2
2
  import { AbstractParam } from '@yolo-croket-dev/core/interfaces';
3
- import { GenerateNaverSearchAdExcelPayload, GenerateNaverSearchAdExcelResult } from '../../dto/naver-search-ad.modules/naver-search-ad-excel';
3
+ import { GenerateNaverSearchAdExcelPayload, GenerateNaverSearchAdExcelResult, RunNaverSearchAdExcelFullProcessPayload } from '../../dto/naver-search-ad.modules/naver-search-ad-excel';
4
4
  export declare class AmqpNaverSearchAdExcelService {
5
5
  private readonly client;
6
6
  private readonly amqpManager;
7
7
  constructor(client: ClientProxy);
8
8
  generateNaverSearchAdExcel(payload: GenerateNaverSearchAdExcelPayload, param: AbstractParam): Promise<GenerateNaverSearchAdExcelResult>;
9
+ /**
10
+ * 네이버 검색광고 엑셀 전체 프로세스 실행 요청 (fire & forget)
11
+ * excel-upload-server가 order-server를 직접 호출하여 처리
12
+ * @param payload 검색 조건 Payload
13
+ * @param param AbstractParam
14
+ */
15
+ runNaverSearchAdExcelFullProcess(payload: RunNaverSearchAdExcelFullProcessPayload, param: AbstractParam): void;
9
16
  }
@@ -24,6 +24,15 @@ let AmqpNaverSearchAdExcelService = class AmqpNaverSearchAdExcelService {
24
24
  async generateNaverSearchAdExcel(payload, param) {
25
25
  return this.amqpManager.call('네이버 검색 광고 엑셀 생성', 'naver-search-ad-excel.generate.excel', payload, param, { isErrorThrowing: true });
26
26
  }
27
+ /**
28
+ * 네이버 검색광고 엑셀 전체 프로세스 실행 요청 (fire & forget)
29
+ * excel-upload-server가 order-server를 직접 호출하여 처리
30
+ * @param payload 검색 조건 Payload
31
+ * @param param AbstractParam
32
+ */
33
+ runNaverSearchAdExcelFullProcess(payload, param) {
34
+ this.amqpManager.onlyPublish('네이버 검색광고 엑셀 전체 프로세스 실행 요청', 'naver-search-ad-excel.run.full-process', payload, param);
35
+ }
27
36
  };
28
37
  exports.AmqpNaverSearchAdExcelService = AmqpNaverSearchAdExcelService;
29
38
  exports.AmqpNaverSearchAdExcelService = AmqpNaverSearchAdExcelService = __decorate([
@@ -1 +1,4 @@
1
1
  export * from './run-naver-search-ad-excel-process.dto';
2
+ export * from './process-naver-search-ad-excel-init.dto';
3
+ export * from './process-search-naver-sa.dto';
4
+ export * from './process-aggregation-purchased-info.dto';
@@ -15,3 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./run-naver-search-ad-excel-process.dto"), exports);
18
+ __exportStar(require("./process-naver-search-ad-excel-init.dto"), exports);
19
+ __exportStar(require("./process-search-naver-sa.dto"), exports);
20
+ __exportStar(require("./process-aggregation-purchased-info.dto"), exports);
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author jun
3
+ * @description 구매 정보 집계 DTO
4
+ * @process 1. Payload 검증 → 2. 구매 정보 집계 처리
5
+ */
6
+ /**
7
+ * 구매 정보 집계 Payload
8
+ */
9
+ export declare class ProcessAggregationPurchasedInfoPayload {
10
+ /** NaverSearchAdExcel 문서 ID */
11
+ naverSearchAdExcelId: string;
12
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * @author jun
4
+ * @description 구매 정보 집계 DTO
5
+ * @process 1. Payload 검증 → 2. 구매 정보 집계 처리
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ 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;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ProcessAggregationPurchasedInfoPayload = void 0;
18
+ const class_validator_1 = require("class-validator");
19
+ /**
20
+ * 구매 정보 집계 Payload
21
+ */
22
+ class ProcessAggregationPurchasedInfoPayload {
23
+ }
24
+ exports.ProcessAggregationPurchasedInfoPayload = ProcessAggregationPurchasedInfoPayload;
25
+ __decorate([
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsNotEmpty)(),
28
+ __metadata("design:type", String)
29
+ ], ProcessAggregationPurchasedInfoPayload.prototype, "naverSearchAdExcelId", void 0);
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @author jun
3
+ * @description 네이버 검색광고 엑셀 init 생성 DTO
4
+ * @process 1. Payload 검증 → 2. 서비스 호출 → 3. naverSearchAdExcelId 반환
5
+ */
6
+ import { Types } from 'mongoose';
7
+ /**
8
+ * 네이버 검색광고 엑셀 init 생성 Payload
9
+ */
10
+ export declare class ProcessNaverSearchAdExcelInitPayload {
11
+ nccCampaignId?: string;
12
+ nccAdgroupId?: string;
13
+ adId?: string;
14
+ itemId?: string;
15
+ paymentSDate: string;
16
+ paymentEDate: string;
17
+ roasStart?: number;
18
+ roasEnd?: number;
19
+ roas30Start?: number;
20
+ roas30End?: number;
21
+ bidAmtStart?: number;
22
+ bidAmtEnd?: number;
23
+ }
24
+ /**
25
+ * 네이버 검색광고 엑셀 init 생성 Result
26
+ */
27
+ export interface ProcessNaverSearchAdExcelInitResult {
28
+ /** 생성된 NaverSearchAdExcel 문서 ID */
29
+ naverSearchAdExcelId: Types.ObjectId;
30
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /**
3
+ * @author jun
4
+ * @description 네이버 검색광고 엑셀 init 생성 DTO
5
+ * @process 1. Payload 검증 → 2. 서비스 호출 → 3. naverSearchAdExcelId 반환
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ 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;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ProcessNaverSearchAdExcelInitPayload = void 0;
18
+ const class_validator_1 = require("class-validator");
19
+ function getDaysDifference(startDateStr, endDateStr) {
20
+ const startDate = new Date(startDateStr);
21
+ const endDate = new Date(endDateStr);
22
+ const diffTime = endDate.getTime() - startDate.getTime();
23
+ return Math.floor(diffTime / (1000 * 60 * 60 * 24));
24
+ }
25
+ let DateRangeMax30DaysConstraint = class DateRangeMax30DaysConstraint {
26
+ validate(_value, args) {
27
+ const object = args.object;
28
+ const { paymentSDate, paymentEDate } = object;
29
+ try {
30
+ const diff = getDaysDifference(paymentSDate, paymentEDate);
31
+ return diff >= 0 && diff <= 30;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ defaultMessage() {
38
+ return '날짜 기간은 최대 30일까지만 가능합니다.';
39
+ }
40
+ };
41
+ DateRangeMax30DaysConstraint = __decorate([
42
+ (0, class_validator_1.ValidatorConstraint)({ name: 'dateRangeMax30Days', async: false })
43
+ ], DateRangeMax30DaysConstraint);
44
+ /**
45
+ * 네이버 검색광고 엑셀 init 생성 Payload
46
+ */
47
+ class ProcessNaverSearchAdExcelInitPayload {
48
+ }
49
+ exports.ProcessNaverSearchAdExcelInitPayload = ProcessNaverSearchAdExcelInitPayload;
50
+ __decorate([
51
+ (0, class_validator_1.IsString)(),
52
+ (0, class_validator_1.IsOptional)(),
53
+ __metadata("design:type", String)
54
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "nccCampaignId", void 0);
55
+ __decorate([
56
+ (0, class_validator_1.IsString)(),
57
+ (0, class_validator_1.IsOptional)(),
58
+ __metadata("design:type", String)
59
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "nccAdgroupId", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsString)(),
62
+ (0, class_validator_1.IsOptional)(),
63
+ __metadata("design:type", String)
64
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "adId", void 0);
65
+ __decorate([
66
+ (0, class_validator_1.IsString)(),
67
+ (0, class_validator_1.IsOptional)(),
68
+ __metadata("design:type", String)
69
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "itemId", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsString)(),
72
+ (0, class_validator_1.IsNotEmpty)(),
73
+ (0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}$/, { message: 'paymentSDate는 YYYY-MM-DD 형식이어야 합니다.' }),
74
+ (0, class_validator_1.Validate)(DateRangeMax30DaysConstraint),
75
+ __metadata("design:type", String)
76
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "paymentSDate", void 0);
77
+ __decorate([
78
+ (0, class_validator_1.IsString)(),
79
+ (0, class_validator_1.IsNotEmpty)(),
80
+ (0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}$/, { message: 'paymentEDate는 YYYY-MM-DD 형식이어야 합니다.' }),
81
+ __metadata("design:type", String)
82
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "paymentEDate", void 0);
83
+ __decorate([
84
+ (0, class_validator_1.IsNumber)(),
85
+ (0, class_validator_1.IsOptional)(),
86
+ __metadata("design:type", Number)
87
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "roasStart", void 0);
88
+ __decorate([
89
+ (0, class_validator_1.IsNumber)(),
90
+ (0, class_validator_1.IsOptional)(),
91
+ __metadata("design:type", Number)
92
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "roasEnd", void 0);
93
+ __decorate([
94
+ (0, class_validator_1.IsNumber)(),
95
+ (0, class_validator_1.IsOptional)(),
96
+ __metadata("design:type", Number)
97
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "roas30Start", void 0);
98
+ __decorate([
99
+ (0, class_validator_1.IsNumber)(),
100
+ (0, class_validator_1.IsOptional)(),
101
+ __metadata("design:type", Number)
102
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "roas30End", void 0);
103
+ __decorate([
104
+ (0, class_validator_1.IsNumber)(),
105
+ (0, class_validator_1.IsOptional)(),
106
+ __metadata("design:type", Number)
107
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "bidAmtStart", void 0);
108
+ __decorate([
109
+ (0, class_validator_1.IsNumber)(),
110
+ (0, class_validator_1.IsOptional)(),
111
+ __metadata("design:type", Number)
112
+ ], ProcessNaverSearchAdExcelInitPayload.prototype, "bidAmtEnd", void 0);
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author jun
3
+ * @description 네이버 SA 데이터 검색 및 저장 DTO
4
+ * @process 1. Payload 검증 → 2. Naver API 데이터 수집 → 3. DB 저장
5
+ */
6
+ /**
7
+ * 네이버 SA 데이터 검색 및 저장 Payload
8
+ */
9
+ export declare class ProcessSearchNaverSaPayload {
10
+ /** NaverSearchAdExcel 문서 ID */
11
+ naverSearchAdExcelId: string;
12
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * @author jun
4
+ * @description 네이버 SA 데이터 검색 및 저장 DTO
5
+ * @process 1. Payload 검증 → 2. Naver API 데이터 수집 → 3. DB 저장
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ 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;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ProcessSearchNaverSaPayload = void 0;
18
+ const class_validator_1 = require("class-validator");
19
+ /**
20
+ * 네이버 SA 데이터 검색 및 저장 Payload
21
+ */
22
+ class ProcessSearchNaverSaPayload {
23
+ }
24
+ exports.ProcessSearchNaverSaPayload = ProcessSearchNaverSaPayload;
25
+ __decorate([
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsNotEmpty)(),
28
+ __metadata("design:type", String)
29
+ ], ProcessSearchNaverSaPayload.prototype, "naverSearchAdExcelId", void 0);
@@ -35,10 +35,9 @@ export declare class RunNaverSearchAdExcelProcessPayload {
35
35
  }
36
36
  /**
37
37
  * 네이버 검색광고 엑셀 전체 프로세스 실행 Result
38
+ * (엑셀 생성은 excel-upload-server에서 처리하므로 naverSearchAdExcelId만 반환)
38
39
  */
39
40
  export interface RunNaverSearchAdExcelProcessResult {
40
41
  /** NaverSearchAdExcel 문서 ID */
41
42
  naverSearchAdExcelId: Types.ObjectId;
42
- /** 엑셀 다운로드 URL */
43
- excelUrl: string;
44
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/amqp-access",
3
- "version": "0.7.29",
3
+ "version": "0.7.31-slowquery.0",
4
4
  "main": "index.js",
5
5
  "author": "Yolo Co., Ltd.",
6
6
  "description": "크로켓 amqp-access npm",
@@ -0,0 +1,4 @@
1
+ export type AppSwitchingRewardPayload = unknown;
2
+ export interface AppSwitchingRewardResult {
3
+ couponCode: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -8,3 +8,4 @@ export * from './sign-in-guest-user.dto';
8
8
  export * from './sign-up-guest-user.dto';
9
9
  export * from './update-guest-username.dto';
10
10
  export * from './reversal-credit-by-p-info-id.dto';
11
+ export * from './app-switching-reward.dto';
@@ -24,3 +24,4 @@ __exportStar(require("./sign-in-guest-user.dto"), exports);
24
24
  __exportStar(require("./sign-up-guest-user.dto"), exports);
25
25
  __exportStar(require("./update-guest-username.dto"), exports);
26
26
  __exportStar(require("./reversal-credit-by-p-info-id.dto"), exports);
27
+ __exportStar(require("./app-switching-reward.dto"), exports);
@@ -3,7 +3,7 @@ import { AbstractParam } from '@yolo-croket-dev/core';
3
3
  /** @dto -v2 */
4
4
  import { DecodePhoneNumbersPayload, PhoneDecodedData } from '@yolo-croket-dev/dto-v2/user-service';
5
5
  import { SaveShippingAddressPayload } from '../dto/user/command/save-shipping-address.dto';
6
- import { GetDuplicateUsersByPhoneNumberPayload, GetDuplicateUsersByPhoneNumberResult, GetUserIdsByUsernamePayload, GetUserIdsByUsernameResult, GetUserInfosForPartialRefundPayload, GetUserInfosForPartialRefundResult, IssueSignupRewardPayload, IssueSignupRewardResult, PatchGenderAndBirthdayPayload, SaveSystemAppPushAcceptPayload, IssueInflowSignupRewardResult, VerificationPhoneForSnsUserPayload, SignInGuestUserPayload, SignInGuestUserResult, UpdateGuestUsernamePayload } from '../dto';
6
+ import { GetDuplicateUsersByPhoneNumberPayload, GetDuplicateUsersByPhoneNumberResult, GetUserIdsByUsernamePayload, GetUserIdsByUsernameResult, GetUserInfosForPartialRefundPayload, GetUserInfosForPartialRefundResult, IssueSignupRewardPayload, IssueSignupRewardResult, PatchGenderAndBirthdayPayload, SaveSystemAppPushAcceptPayload, IssueInflowSignupRewardResult, VerificationPhoneForSnsUserPayload, SignInGuestUserPayload, SignInGuestUserResult, UpdateGuestUsernamePayload, AppSwitchingRewardPayload, AppSwitchingRewardResult } from '../dto';
7
7
  /** 기존 userService 와 이름이 겹쳐 userEntityService로 임시 사용 */
8
8
  export declare class AmqpUserEntityService {
9
9
  private readonly client;
@@ -21,4 +21,5 @@ export declare class AmqpUserEntityService {
21
21
  verificationPhoneForSnsUser(payload: VerificationPhoneForSnsUserPayload, param: AbstractParam): Promise<void>;
22
22
  signInGuestUser(payload: SignInGuestUserPayload, param: AbstractParam): Promise<SignInGuestUserResult>;
23
23
  updateGuestUserName(payload: UpdateGuestUsernamePayload, param: AbstractParam): Promise<void>;
24
+ appSwitchingReward(payload: AppSwitchingRewardPayload, param: AbstractParam): Promise<AppSwitchingRewardResult>;
24
25
  }
@@ -58,6 +58,9 @@ let AmqpUserEntityService = class AmqpUserEntityService {
58
58
  async updateGuestUserName(payload, param) {
59
59
  return this.amqpManager.call('유저 - 게스트 유저 이름 수정', 'user.update.guest-user-name', payload, param, { isErrorThrowing: true });
60
60
  }
61
+ async appSwitchingReward(payload, param) {
62
+ return this.amqpManager.call('유저 - 웹 -> 앱 전환 리워드 발급', 'user.issue.app-switching-reward', payload, param, { isErrorThrowing: true });
63
+ }
61
64
  };
62
65
  exports.AmqpUserEntityService = AmqpUserEntityService;
63
66
  exports.AmqpUserEntityService = AmqpUserEntityService = __decorate([