@yolo-croket-dev/amqp-access 0.7.250 → 0.7.252

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 (71) hide show
  1. package/excel-upload-server/amqp.excel-upload-server.module.js +2 -0
  2. package/excel-upload-server/dto/index.d.ts +1 -0
  3. package/excel-upload-server/dto/index.js +1 -0
  4. package/excel-upload-server/dto/store-item-bulk/command/analyze-bulk-item-excel.dto.d.ts +15 -0
  5. package/excel-upload-server/dto/store-item-bulk/command/analyze-bulk-item-excel.dto.js +27 -0
  6. package/excel-upload-server/dto/store-item-bulk/command/bulk-item-job-id.dto.d.ts +11 -0
  7. package/excel-upload-server/dto/store-item-bulk/command/bulk-item-job-id.dto.js +25 -0
  8. package/excel-upload-server/dto/store-item-bulk/command/create-bulk-item-export.dto.d.ts +7 -0
  9. package/excel-upload-server/dto/store-item-bulk/command/create-bulk-item-export.dto.js +25 -0
  10. package/excel-upload-server/dto/store-item-bulk/command/index.d.ts +3 -0
  11. package/excel-upload-server/dto/store-item-bulk/command/index.js +19 -0
  12. package/excel-upload-server/dto/store-item-bulk/index.d.ts +2 -0
  13. package/excel-upload-server/dto/store-item-bulk/index.js +18 -0
  14. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-job-result.dto.d.ts +9 -0
  15. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-job-result.dto.js +21 -0
  16. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-job-rows.dto.d.ts +34 -0
  17. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-job-rows.dto.js +49 -0
  18. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-job.dto.d.ts +7 -0
  19. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-job.dto.js +21 -0
  20. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-jobs.dto.d.ts +38 -0
  21. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-jobs.dto.js +50 -0
  22. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-template.dto.d.ts +11 -0
  23. package/excel-upload-server/dto/store-item-bulk/query/get-bulk-item-template.dto.js +25 -0
  24. package/excel-upload-server/dto/store-item-bulk/query/index.d.ts +5 -0
  25. package/excel-upload-server/dto/store-item-bulk/query/index.js +21 -0
  26. package/excel-upload-server/services/amqp.store-item-bulk.service.d.ts +26 -0
  27. package/excel-upload-server/services/amqp.store-item-bulk.service.js +74 -0
  28. package/excel-upload-server/services/index.d.ts +1 -0
  29. package/excel-upload-server/services/index.js +1 -0
  30. package/image-server/amqp.image-server.module.js +2 -0
  31. package/image-server/dto/image-asset/command/cleanup-expired-image-assets.dto.d.ts +15 -0
  32. package/image-server/dto/image-asset/command/cleanup-expired-image-assets.dto.js +33 -0
  33. package/image-server/dto/image-asset/command/delete-image-asset.dto.d.ts +13 -0
  34. package/image-server/dto/image-asset/command/delete-image-asset.dto.js +25 -0
  35. package/image-server/dto/image-asset/command/index.d.ts +4 -0
  36. package/image-server/dto/image-asset/command/index.js +20 -0
  37. package/image-server/dto/image-asset/command/sync-image-asset-references.dto.d.ts +15 -0
  38. package/image-server/dto/image-asset/command/sync-image-asset-references.dto.js +32 -0
  39. package/image-server/dto/image-asset/command/upload-image-assets.dto.d.ts +30 -0
  40. package/image-server/dto/image-asset/command/upload-image-assets.dto.js +37 -0
  41. package/image-server/dto/image-asset/index.d.ts +2 -0
  42. package/image-server/dto/image-asset/index.js +18 -0
  43. package/image-server/dto/image-asset/query/check-image-asset-hashes.dto.d.ts +19 -0
  44. package/image-server/dto/image-asset/query/check-image-asset-hashes.dto.js +31 -0
  45. package/image-server/dto/image-asset/query/get-image-asset.dto.d.ts +29 -0
  46. package/image-server/dto/image-asset/query/get-image-asset.dto.js +25 -0
  47. package/image-server/dto/image-asset/query/get-image-assets.dto.d.ts +19 -0
  48. package/image-server/dto/image-asset/query/get-image-assets.dto.js +43 -0
  49. package/image-server/dto/image-asset/query/index.d.ts +3 -0
  50. package/image-server/dto/image-asset/query/index.js +19 -0
  51. package/image-server/dto/index.d.ts +1 -0
  52. package/image-server/dto/index.js +1 -0
  53. package/image-server/services/amqp.image-asset.service.d.ts +55 -0
  54. package/image-server/services/amqp.image-asset.service.js +91 -0
  55. package/image-server/services/index.d.ts +1 -0
  56. package/image-server/services/index.js +1 -0
  57. package/package.json +3 -3
  58. package/store-item-server/dto/store-item/command/reg-store-item.dto.d.ts +5 -0
  59. package/store-item-server/dto/store-item/command/reg-store-item.dto.js +5 -0
  60. package/store-item-server/dto/store-item/query/atlas-search/get-store-items-for-product-feed.dto.d.ts +1 -1
  61. package/store-item-server/dto/store-item/query/search-store-items-for-enuri-summary-ep.dto.d.ts +1 -1
  62. package/store-item-server/dto/store-item.moduels/store-item-by-excel/command/edit-store-item-by-excel.dto.d.ts +29 -0
  63. package/store-item-server/dto/store-item.moduels/store-item-by-excel/command/edit-store-item-by-excel.dto.js +82 -0
  64. package/store-item-server/dto/store-item.moduels/store-item-by-excel/command/index.d.ts +1 -0
  65. package/store-item-server/dto/store-item.moduels/store-item-by-excel/command/index.js +1 -0
  66. package/store-item-server/dto/store-item.moduels/store-item-by-excel/query/get-store-items-for-seller-bulk-export.dto.d.ts +52 -0
  67. package/store-item-server/dto/store-item.moduels/store-item-by-excel/query/get-store-items-for-seller-bulk-export.dto.js +25 -0
  68. package/store-item-server/dto/store-item.moduels/store-item-by-excel/query/index.d.ts +1 -0
  69. package/store-item-server/dto/store-item.moduels/store-item-by-excel/query/index.js +1 -0
  70. package/store-item-server/services/store-item.moduels/amqp.store-item-store-by-excel.service.d.ts +7 -1
  71. package/store-item-server/services/store-item.moduels/amqp.store-item-store-by-excel.service.js +12 -0
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @author 최홍준
3
+ * @description 삭제·업로드 실패 셀러 이미지의 잔여 파일 정리 AMQP 요청 DTO
4
+ * @process 한 번에 처리할 최대 개수를 전달해 R2 객체와 이미지 자산 문서를 정리합니다.
5
+ */
6
+ export declare class CleanupExpiredImageAssetsPayload {
7
+ limit: number;
8
+ }
9
+ /** 삭제·업로드 실패 셀러 이미지의 잔여 파일 정리 응답 */
10
+ export interface CleanupExpiredImageAssetsResult {
11
+ scannedCount: number;
12
+ deletedCount: number;
13
+ failedCount: number;
14
+ failedImageAssetIds: string[];
15
+ }
@@ -0,0 +1,33 @@
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.CleanupExpiredImageAssetsPayload = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * @author 최홍준
17
+ * @description 삭제·업로드 실패 셀러 이미지의 잔여 파일 정리 AMQP 요청 DTO
18
+ * @process 한 번에 처리할 최대 개수를 전달해 R2 객체와 이미지 자산 문서를 정리합니다.
19
+ */
20
+ class CleanupExpiredImageAssetsPayload {
21
+ constructor() {
22
+ this.limit = 100;
23
+ }
24
+ }
25
+ exports.CleanupExpiredImageAssetsPayload = CleanupExpiredImageAssetsPayload;
26
+ __decorate([
27
+ (0, class_validator_1.IsOptional)(),
28
+ (0, class_transformer_1.Type)(() => Number),
29
+ (0, class_validator_1.IsInt)(),
30
+ (0, class_validator_1.Min)(1),
31
+ (0, class_validator_1.Max)(500),
32
+ __metadata("design:type", Number)
33
+ ], CleanupExpiredImageAssetsPayload.prototype, "limit", void 0);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @author 최홍준
3
+ * @description 셀러 이미지 보관함 자산 삭제 AMQP 요청 DTO
4
+ * @process 이미지 자산 식별자로 소유권과 사용 여부를 확인한 뒤 논리 삭제합니다.
5
+ */
6
+ export declare class DeleteImageAssetPayload {
7
+ imageAssetId: string;
8
+ }
9
+ /** 셀러 이미지 보관함 자산 삭제 응답 */
10
+ export interface DeleteImageAssetResult {
11
+ imageAssetId: string;
12
+ deleted: boolean;
13
+ }
@@ -0,0 +1,25 @@
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.DeleteImageAssetPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author 최홍준
16
+ * @description 셀러 이미지 보관함 자산 삭제 AMQP 요청 DTO
17
+ * @process 이미지 자산 식별자로 소유권과 사용 여부를 확인한 뒤 논리 삭제합니다.
18
+ */
19
+ class DeleteImageAssetPayload {
20
+ }
21
+ exports.DeleteImageAssetPayload = DeleteImageAssetPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsMongoId)(),
24
+ __metadata("design:type", String)
25
+ ], DeleteImageAssetPayload.prototype, "imageAssetId", void 0);
@@ -0,0 +1,4 @@
1
+ export * from './upload-image-assets.dto';
2
+ export * from './delete-image-asset.dto';
3
+ export * from './sync-image-asset-references.dto';
4
+ export * from './cleanup-expired-image-assets.dto';
@@ -0,0 +1,20 @@
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("./upload-image-assets.dto"), exports);
18
+ __exportStar(require("./delete-image-asset.dto"), exports);
19
+ __exportStar(require("./sync-image-asset-references.dto"), exports);
20
+ __exportStar(require("./cleanup-expired-image-assets.dto"), exports);
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @author 최홍준
3
+ * @description 상품이 현재 사용하는 셀러 이미지 URL 동기화 AMQP 요청 DTO
4
+ * @process 상품 ID와 최종 이미지 URL 목록을 전달해 기존 참조와의 차이를 attach·detach합니다.
5
+ */
6
+ export declare class SyncImageAssetReferencesPayload {
7
+ storeItemId: string;
8
+ imageUrls: string[];
9
+ }
10
+ /** 상품 이미지 참조 동기화 응답 */
11
+ export interface SyncImageAssetReferencesResult {
12
+ attachedCount: number;
13
+ detachedCount: number;
14
+ unmatchedUrls: string[];
15
+ }
@@ -0,0 +1,32 @@
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.SyncImageAssetReferencesPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author 최홍준
16
+ * @description 상품이 현재 사용하는 셀러 이미지 URL 동기화 AMQP 요청 DTO
17
+ * @process 상품 ID와 최종 이미지 URL 목록을 전달해 기존 참조와의 차이를 attach·detach합니다.
18
+ */
19
+ class SyncImageAssetReferencesPayload {
20
+ }
21
+ exports.SyncImageAssetReferencesPayload = SyncImageAssetReferencesPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsMongoId)(),
24
+ __metadata("design:type", String)
25
+ ], SyncImageAssetReferencesPayload.prototype, "storeItemId", void 0);
26
+ __decorate([
27
+ (0, class_validator_1.IsArray)(),
28
+ (0, class_validator_1.ArrayMaxSize)(200),
29
+ (0, class_validator_1.ArrayUnique)(),
30
+ (0, class_validator_1.IsString)({ each: true }),
31
+ __metadata("design:type", Array)
32
+ ], SyncImageAssetReferencesPayload.prototype, "imageUrls", void 0);
@@ -0,0 +1,30 @@
1
+ import { SellerImageAssetTypeEnum } from '@yolo-croket-dev/entity-v2/seller-image-asset';
2
+ import { ImageAssetItem } from '../query/get-image-asset.dto';
3
+ /**
4
+ * @author 최홍준
5
+ * @description 셀러 이미지 보관함 다중 업로드 AMQP 요청 DTO
6
+ * @process 이미지 용도와 파일별 원본 MD5를 파일 데이터와 함께 Image Server에 전달합니다.
7
+ */
8
+ export declare class UploadImageAssetsPayload {
9
+ imageType: SellerImageAssetTypeEnum;
10
+ sourceMd5s?: string[];
11
+ uploadSessionId?: string;
12
+ }
13
+ /** 다중 업로드 안에 포함된 파일 한 건의 처리 결과 */
14
+ export interface UploadImageAssetItemResult {
15
+ index: number;
16
+ originalFileName: string;
17
+ sourceMd5: string;
18
+ status: 'UPLOADED' | 'DUPLICATE' | 'FAILED';
19
+ imageAsset?: ImageAssetItem;
20
+ errorCode?: string;
21
+ errorMessage?: string;
22
+ }
23
+ /** 셀러 이미지 보관함 다중 업로드 집계 응답 */
24
+ export interface UploadImageAssetsResult {
25
+ totalCount: number;
26
+ successCount: number;
27
+ duplicateCount: number;
28
+ failCount: number;
29
+ items: UploadImageAssetItemResult[];
30
+ }
@@ -0,0 +1,37 @@
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.UploadImageAssetsPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const seller_image_asset_1 = require("@yolo-croket-dev/entity-v2/seller-image-asset");
15
+ /**
16
+ * @author 최홍준
17
+ * @description 셀러 이미지 보관함 다중 업로드 AMQP 요청 DTO
18
+ * @process 이미지 용도와 파일별 원본 MD5를 파일 데이터와 함께 Image Server에 전달합니다.
19
+ */
20
+ class UploadImageAssetsPayload {
21
+ }
22
+ exports.UploadImageAssetsPayload = UploadImageAssetsPayload;
23
+ __decorate([
24
+ (0, class_validator_1.IsEnum)(seller_image_asset_1.SellerImageAssetTypeEnum),
25
+ __metadata("design:type", String)
26
+ ], UploadImageAssetsPayload.prototype, "imageType", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsArray)(),
30
+ (0, class_validator_1.IsString)({ each: true }),
31
+ __metadata("design:type", Array)
32
+ ], UploadImageAssetsPayload.prototype, "sourceMd5s", void 0);
33
+ __decorate([
34
+ (0, class_validator_1.IsOptional)(),
35
+ (0, class_validator_1.IsString)(),
36
+ __metadata("design:type", String)
37
+ ], UploadImageAssetsPayload.prototype, "uploadSessionId", void 0);
@@ -0,0 +1,2 @@
1
+ export * from './command';
2
+ export * from './query';
@@ -0,0 +1,18 @@
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);
18
+ __exportStar(require("./query"), exports);
@@ -0,0 +1,19 @@
1
+ import { SellerImageAssetTypeEnum } from '@yolo-croket-dev/entity-v2/seller-image-asset';
2
+ import { ImageAssetItem } from './get-image-asset.dto';
3
+ /**
4
+ * @author 최홍준
5
+ * @description 셀러 이미지 원본 MD5 중복 조회 AMQP 요청 DTO
6
+ * @process 같은 셀러와 이미지 용도 안에서 재사용할 수 있는 기존 자산을 조회합니다.
7
+ */
8
+ export declare class CheckImageAssetHashesPayload {
9
+ imageType: SellerImageAssetTypeEnum;
10
+ sourceMd5s: string[];
11
+ }
12
+ /** 셀러 이미지 원본 MD5 중복 조회 응답 */
13
+ export interface CheckImageAssetHashesResult {
14
+ items: Array<{
15
+ sourceMd5: string;
16
+ exists: boolean;
17
+ imageAsset?: ImageAssetItem;
18
+ }>;
19
+ }
@@ -0,0 +1,31 @@
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.CheckImageAssetHashesPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const seller_image_asset_1 = require("@yolo-croket-dev/entity-v2/seller-image-asset");
15
+ /**
16
+ * @author 최홍준
17
+ * @description 셀러 이미지 원본 MD5 중복 조회 AMQP 요청 DTO
18
+ * @process 같은 셀러와 이미지 용도 안에서 재사용할 수 있는 기존 자산을 조회합니다.
19
+ */
20
+ class CheckImageAssetHashesPayload {
21
+ }
22
+ exports.CheckImageAssetHashesPayload = CheckImageAssetHashesPayload;
23
+ __decorate([
24
+ (0, class_validator_1.IsEnum)(seller_image_asset_1.SellerImageAssetTypeEnum),
25
+ __metadata("design:type", String)
26
+ ], CheckImageAssetHashesPayload.prototype, "imageType", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsArray)(),
29
+ (0, class_validator_1.IsString)({ each: true }),
30
+ __metadata("design:type", Array)
31
+ ], CheckImageAssetHashesPayload.prototype, "sourceMd5s", void 0);
@@ -0,0 +1,29 @@
1
+ import { SellerImageAssetStatusEnum, SellerImageAssetTypeEnum } from '@yolo-croket-dev/entity-v2/seller-image-asset';
2
+ /** 이미지 보관함 목록·상세·중복 조회 공통 자산 정보 */
3
+ export interface ImageAssetItem {
4
+ imageAssetId: string;
5
+ imageLogId?: string;
6
+ imageType: SellerImageAssetTypeEnum;
7
+ originalFileName: string;
8
+ url: string;
9
+ sourceMd5: string;
10
+ processedMd5: string;
11
+ width: number;
12
+ height: number;
13
+ size: number;
14
+ contentType: string;
15
+ status: SellerImageAssetStatusEnum;
16
+ referenceCount: number;
17
+ expiresAt?: Date;
18
+ regDate: Date;
19
+ }
20
+ /**
21
+ * @author 최홍준
22
+ * @description 셀러 이미지 보관함 단건 조회 AMQP 요청 DTO
23
+ * @process 이미지 자산 식별자로 셀러가 소유한 활성 이미지 한 건을 조회합니다.
24
+ */
25
+ export declare class GetImageAssetPayload {
26
+ imageAssetId: string;
27
+ }
28
+ /** 셀러 이미지 보관함 단건 조회 응답 */
29
+ export type GetImageAssetResult = ImageAssetItem;
@@ -0,0 +1,25 @@
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.GetImageAssetPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author 최홍준
16
+ * @description 셀러 이미지 보관함 단건 조회 AMQP 요청 DTO
17
+ * @process 이미지 자산 식별자로 셀러가 소유한 활성 이미지 한 건을 조회합니다.
18
+ */
19
+ class GetImageAssetPayload {
20
+ }
21
+ exports.GetImageAssetPayload = GetImageAssetPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsMongoId)(),
24
+ __metadata("design:type", String)
25
+ ], GetImageAssetPayload.prototype, "imageAssetId", void 0);
@@ -0,0 +1,19 @@
1
+ import { SellerImageAssetTypeEnum } from '@yolo-croket-dev/entity-v2/seller-image-asset';
2
+ import { ImageAssetItem } from './get-image-asset.dto';
3
+ /**
4
+ * @author 최홍준
5
+ * @description 셀러 이미지 보관함 목록 조회 AMQP 요청 DTO
6
+ * @process 선택적인 이미지 용도와 페이지 조건으로 셀러 소유 이미지 목록을 조회합니다.
7
+ */
8
+ export declare class GetImageAssetsPayload {
9
+ imageType?: SellerImageAssetTypeEnum;
10
+ page: number;
11
+ limit: number;
12
+ }
13
+ /** 셀러 이미지 보관함 페이지 목록 응답 */
14
+ export interface GetImageAssetsResult {
15
+ page: number;
16
+ limit: number;
17
+ totalCount: number;
18
+ items: ImageAssetItem[];
19
+ }
@@ -0,0 +1,43 @@
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.GetImageAssetsPayload = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const seller_image_asset_1 = require("@yolo-croket-dev/entity-v2/seller-image-asset");
16
+ /**
17
+ * @author 최홍준
18
+ * @description 셀러 이미지 보관함 목록 조회 AMQP 요청 DTO
19
+ * @process 선택적인 이미지 용도와 페이지 조건으로 셀러 소유 이미지 목록을 조회합니다.
20
+ */
21
+ class GetImageAssetsPayload {
22
+ constructor() {
23
+ this.page = 1;
24
+ this.limit = 20;
25
+ }
26
+ }
27
+ exports.GetImageAssetsPayload = GetImageAssetsPayload;
28
+ __decorate([
29
+ (0, class_validator_1.IsOptional)(),
30
+ (0, class_validator_1.IsEnum)(seller_image_asset_1.SellerImageAssetTypeEnum),
31
+ __metadata("design:type", String)
32
+ ], GetImageAssetsPayload.prototype, "imageType", void 0);
33
+ __decorate([
34
+ (0, class_transformer_1.Type)(() => Number),
35
+ (0, class_validator_1.Min)(1),
36
+ __metadata("design:type", Number)
37
+ ], GetImageAssetsPayload.prototype, "page", void 0);
38
+ __decorate([
39
+ (0, class_transformer_1.Type)(() => Number),
40
+ (0, class_validator_1.Min)(1),
41
+ (0, class_validator_1.Max)(100),
42
+ __metadata("design:type", Number)
43
+ ], GetImageAssetsPayload.prototype, "limit", void 0);
@@ -0,0 +1,3 @@
1
+ export * from './check-image-asset-hashes.dto';
2
+ export * from './get-image-assets.dto';
3
+ export * from './get-image-asset.dto';
@@ -0,0 +1,19 @@
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("./check-image-asset-hashes.dto"), exports);
18
+ __exportStar(require("./get-image-assets.dto"), exports);
19
+ __exportStar(require("./get-image-asset.dto"), exports);
@@ -1,2 +1,3 @@
1
1
  export * from './image';
2
2
  export * from './image-log';
3
+ export * from './image-asset';
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./image"), exports);
18
18
  __exportStar(require("./image-log"), exports);
19
+ __exportStar(require("./image-asset"), exports);
@@ -0,0 +1,55 @@
1
+ import { ClientProxy } from '@nestjs/microservices';
2
+ import { AbstractParam, File } from '@yolo-croket-dev/core';
3
+ import { CheckImageAssetHashesPayload, CheckImageAssetHashesResult, CleanupExpiredImageAssetsPayload, CleanupExpiredImageAssetsResult, DeleteImageAssetPayload, DeleteImageAssetResult, GetImageAssetPayload, GetImageAssetResult, GetImageAssetsPayload, GetImageAssetsResult, SyncImageAssetReferencesPayload, SyncImageAssetReferencesResult, UploadImageAssetsPayload, UploadImageAssetsResult } from '../dto';
4
+ /**
5
+ * @author 최홍준
6
+ * @description Image Server의 셀러 이미지 보관함 기능을 호출합니다.
7
+ * @process 파일 업로드·중복 조회·목록·상세·삭제 요청을 각 이미지 보관함 메시지 패턴으로 전달합니다.
8
+ */
9
+ export declare class AmqpImageAssetService {
10
+ private readonly client;
11
+ private readonly amqpManager;
12
+ constructor(client: ClientProxy);
13
+ /**
14
+ * @author 최홍준
15
+ * @description 셀러가 선택한 이미지 파일들을 이미지 보관함에 업로드합니다.
16
+ * @process 파일 데이터와 원본 MD5·이미지 용도를 Image Server에 전달하고 파일별 결과를 반환합니다.
17
+ */
18
+ uploadImageAssets(file: File, payload: UploadImageAssetsPayload, param: AbstractParam): Promise<UploadImageAssetsResult>;
19
+ /**
20
+ * @author 최홍준
21
+ * @description 셀러 이미지 보관함에서 원본 MD5 중복 여부를 조회합니다.
22
+ * @process 이미지 용도별 해시 목록을 전달하고 재사용 가능한 기존 이미지 자산을 반환합니다.
23
+ */
24
+ checkImageAssetHashes(payload: CheckImageAssetHashesPayload, param: AbstractParam): Promise<CheckImageAssetHashesResult>;
25
+ /**
26
+ * @author 최홍준
27
+ * @description 셀러가 소유한 이미지 보관함 목록을 조회합니다.
28
+ * @process 이미지 용도와 페이지 조건을 Image Server에 전달하고 페이지 목록을 반환합니다.
29
+ */
30
+ getImageAssets(payload: GetImageAssetsPayload, param: AbstractParam): Promise<GetImageAssetsResult>;
31
+ /**
32
+ * @author 최홍준
33
+ * @description 셀러가 소유한 이미지 보관함 자산 한 건을 조회합니다.
34
+ * @process 이미지 자산 식별자를 Image Server에 전달하고 활성 이미지 정보를 반환합니다.
35
+ */
36
+ getImageAsset(payload: GetImageAssetPayload, param: AbstractParam): Promise<GetImageAssetResult>;
37
+ /**
38
+ * @author 최홍준
39
+ * @description 미사용 셀러 이미지 보관함 자산을 삭제합니다.
40
+ * @process 이미지 자산 식별자를 Image Server에 전달하고 소유권·사용 여부 검증 결과를 반환합니다.
41
+ */
42
+ deleteImageAsset(payload: DeleteImageAssetPayload, param: AbstractParam): Promise<DeleteImageAssetResult>;
43
+ /**
44
+ * @author 최홍준
45
+ * @description 상품이 현재 사용하는 셀러 이미지 자산 참조를 동기화합니다.
46
+ * @process 최종 URL 목록과 기존 참조의 차이를 계산하도록 Image Server에 전달합니다.
47
+ */
48
+ syncImageAssetReferences(payload: SyncImageAssetReferencesPayload, param: AbstractParam): Promise<SyncImageAssetReferencesResult>;
49
+ /**
50
+ * @author 최홍준
51
+ * @description 삭제·업로드 실패 셀러 이미지의 잔여 R2 객체를 정리합니다.
52
+ * @process 스케줄러가 전달한 처리 개수만큼 정리하고 성공·실패 집계를 반환합니다.
53
+ */
54
+ cleanupExpiredImageAssets(payload: CleanupExpiredImageAssetsPayload, param: AbstractParam): Promise<CleanupExpiredImageAssetsResult>;
55
+ }
@@ -0,0 +1,91 @@
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.AmqpImageAssetService = 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 최홍준
21
+ * @description Image Server의 셀러 이미지 보관함 기능을 호출합니다.
22
+ * @process 파일 업로드·중복 조회·목록·상세·삭제 요청을 각 이미지 보관함 메시지 패턴으로 전달합니다.
23
+ */
24
+ let AmqpImageAssetService = class AmqpImageAssetService {
25
+ constructor(client) {
26
+ this.client = client;
27
+ this.amqpManager = new functions_1.AmqpManagement(this.client);
28
+ }
29
+ /**
30
+ * @author 최홍준
31
+ * @description 셀러가 선택한 이미지 파일들을 이미지 보관함에 업로드합니다.
32
+ * @process 파일 데이터와 원본 MD5·이미지 용도를 Image Server에 전달하고 파일별 결과를 반환합니다.
33
+ */
34
+ async uploadImageAssets(file, payload, param) {
35
+ return this.amqpManager.call('셀러 이미지 보관함 업로드', 'image-asset.upload', payload, param, { isErrorThrowing: true }, file);
36
+ }
37
+ /**
38
+ * @author 최홍준
39
+ * @description 셀러 이미지 보관함에서 원본 MD5 중복 여부를 조회합니다.
40
+ * @process 이미지 용도별 해시 목록을 전달하고 재사용 가능한 기존 이미지 자산을 반환합니다.
41
+ */
42
+ async checkImageAssetHashes(payload, param) {
43
+ return this.amqpManager.call('셀러 이미지 보관함 원본 MD5 중복 조회', 'image-asset.check-hashes', payload, param, { isErrorThrowing: true });
44
+ }
45
+ /**
46
+ * @author 최홍준
47
+ * @description 셀러가 소유한 이미지 보관함 목록을 조회합니다.
48
+ * @process 이미지 용도와 페이지 조건을 Image Server에 전달하고 페이지 목록을 반환합니다.
49
+ */
50
+ async getImageAssets(payload, param) {
51
+ return this.amqpManager.call('셀러 이미지 보관함 목록 조회', 'image-asset.get-list', payload, param, { isErrorThrowing: true });
52
+ }
53
+ /**
54
+ * @author 최홍준
55
+ * @description 셀러가 소유한 이미지 보관함 자산 한 건을 조회합니다.
56
+ * @process 이미지 자산 식별자를 Image Server에 전달하고 활성 이미지 정보를 반환합니다.
57
+ */
58
+ async getImageAsset(payload, param) {
59
+ return this.amqpManager.call('셀러 이미지 보관함 단건 조회', 'image-asset.get-one', payload, param, { isErrorThrowing: true });
60
+ }
61
+ /**
62
+ * @author 최홍준
63
+ * @description 미사용 셀러 이미지 보관함 자산을 삭제합니다.
64
+ * @process 이미지 자산 식별자를 Image Server에 전달하고 소유권·사용 여부 검증 결과를 반환합니다.
65
+ */
66
+ async deleteImageAsset(payload, param) {
67
+ return this.amqpManager.call('셀러 이미지 보관함 삭제', 'image-asset.delete', payload, param, { isErrorThrowing: true });
68
+ }
69
+ /**
70
+ * @author 최홍준
71
+ * @description 상품이 현재 사용하는 셀러 이미지 자산 참조를 동기화합니다.
72
+ * @process 최종 URL 목록과 기존 참조의 차이를 계산하도록 Image Server에 전달합니다.
73
+ */
74
+ async syncImageAssetReferences(payload, param) {
75
+ return this.amqpManager.call('상품 셀러 이미지 참조 동기화', 'image-asset.sync-references', payload, param, { isErrorThrowing: true });
76
+ }
77
+ /**
78
+ * @author 최홍준
79
+ * @description 삭제·업로드 실패 셀러 이미지의 잔여 R2 객체를 정리합니다.
80
+ * @process 스케줄러가 전달한 처리 개수만큼 정리하고 성공·실패 집계를 반환합니다.
81
+ */
82
+ async cleanupExpiredImageAssets(payload, param) {
83
+ return this.amqpManager.call('삭제·업로드 실패 셀러 이미지 정리', 'image-asset.cleanup-expired', payload, param, { isErrorThrowing: true });
84
+ }
85
+ };
86
+ exports.AmqpImageAssetService = AmqpImageAssetService;
87
+ exports.AmqpImageAssetService = AmqpImageAssetService = __decorate([
88
+ (0, common_1.Injectable)(),
89
+ __param(0, (0, common_1.Inject)('IMAGE_SERVER_PROVIDER')),
90
+ __metadata("design:paramtypes", [microservices_1.ClientProxy])
91
+ ], AmqpImageAssetService);
@@ -1,2 +1,3 @@
1
1
  export * from './amqp.image.service';
2
2
  export * from './amqp.image-log.service';
3
+ export * from './amqp.image-asset.service';
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./amqp.image.service"), exports);
18
18
  __exportStar(require("./amqp.image-log.service"), exports);
19
+ __exportStar(require("./amqp.image-asset.service"), exports);