@yolo-croket-dev/entity-v2 0.3.65 → 0.3.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # 변경 기록
2
2
 
3
+ ## 0.3.66 — 네이버 MID 매핑
4
+
5
+ - 피드에 optional `nvMidUpdatedAt`을 추가합니다.
6
+ - 파일 처리 상태와 시도 entity, 네 업무 필드의 후보 로그 entity를 공개합니다.
7
+ - 소비 순서: entity-v2 → amqp-access → store-item-server → gateway.
8
+
3
9
  ## 0.3.65 — 관리자 개인 즐겨찾기
4
10
 
5
11
  - `ManagePageFavoriteEntity`의 `path`, `title`을 공개합니다.
6
12
  - `ManageUserEntity`에 optional `pageFavorites`, `pageFavoritesRevision`을 추가합니다. 기존 문서는 migration 없이 빈 목록·0 버전으로 읽습니다.
7
13
  - 소비 순서: entity-v2 → amqp-access → user-service → gateway → admin-front.
8
- - 새 컬렉션·인덱스는 추가하지 않습니다. beta 발행 전에는 로컬 tarball로 검증합니다.
14
+ - 새 컬렉션·인덱스는 추가하지 않습니다. 발행 전에는 로컬 tarball로 검증했습니다.
9
15
 
10
16
  - 정식 0.3.64에 공개된 Buyma 정산 entity 계약을 보존합니다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/entity-v2",
3
- "version": "0.3.65",
3
+ "version": "0.3.67",
4
4
  "main": "index.js",
5
5
  "author": "Yolo Co., Ltd.",
6
6
  "description": "크로켓 nest 용 entity-v3",
@@ -602,6 +602,8 @@ export interface StoreItemShippingLeadTimeStatsInfo {
602
602
  * @description 상품
603
603
  */
604
604
  export interface StoreItemEntity {
605
+ /** Excel 등록을 실제 생성한 실행 ID. 보완 초안이 이미 생성된 상품을 중복 등록하거나 덮어쓰지 못하게 합니다. */
606
+ bulkRegistrationExecutionId?: string;
605
607
  /**
606
608
  * 아이디
607
609
  * - 검증: true
@@ -1 +1,3 @@
1
1
  export * from './store-item-naver-feed.entity';
2
+ export * from './store-item-naver-feed-mapping-log.entity';
3
+ export * from './store-item-naver-feed-import-log.entity';
@@ -15,3 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./store-item-naver-feed.entity"), exports);
18
+ __exportStar(require("./store-item-naver-feed-mapping-log.entity"), exports);
19
+ __exportStar(require("./store-item-naver-feed-import-log.entity"), exports);
@@ -0,0 +1,31 @@
1
+ import { Types } from 'mongoose';
2
+ /**
3
+ * @author jun
4
+ * @description 네이버 MID 파일의 처리 시도 상태. 기존 피드 syncStatus와 별도로 관리한다.
5
+ * @process 시도 시작은 PROCESSING, 반영 완료는 SUCCESS, 처리 실패는 FAILED로 기록한다.
6
+ */
7
+ export declare enum StoreItemNaverFeedImportStatusEnum {
8
+ PROCESSING = "PROCESSING",
9
+ SUCCESS = "SUCCESS",
10
+ FAILED = "FAILED"
11
+ }
12
+ /**
13
+ * @author jun
14
+ * @description 네이버 MID 파일 한 개의 처리 시도 및 집계 결과
15
+ * @process 같은 sourceFileId의 재시도는 새로운 _id로 기록하고 성공한 파일은 재반영하지 않는다.
16
+ */
17
+ export interface StoreItemNaverFeedImportLogEntity {
18
+ _id: Types.ObjectId | string;
19
+ /** @description 버전과 part를 구분하는 안정적인 파일 식별자. 실제 구성은 기존 업로더와 맞춘다. */
20
+ sourceFileId: string;
21
+ status: StoreItemNaverFeedImportStatusEnum;
22
+ startedAt: Date;
23
+ completedAt?: Date;
24
+ totalCount: number;
25
+ matchedCount: number;
26
+ unmatchedCount: number;
27
+ invalidCount: number;
28
+ /** @description 증분 처리에서는 파일에 없는 상품을 누락으로 판단하지 않으며 0을 기록한다. */
29
+ staleCount: number;
30
+ errorMessage?: string;
31
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoreItemNaverFeedImportStatusEnum = void 0;
4
+ /**
5
+ * @author jun
6
+ * @description 네이버 MID 파일의 처리 시도 상태. 기존 피드 syncStatus와 별도로 관리한다.
7
+ * @process 시도 시작은 PROCESSING, 반영 완료는 SUCCESS, 처리 실패는 FAILED로 기록한다.
8
+ */
9
+ var StoreItemNaverFeedImportStatusEnum;
10
+ (function (StoreItemNaverFeedImportStatusEnum) {
11
+ StoreItemNaverFeedImportStatusEnum["PROCESSING"] = "PROCESSING";
12
+ StoreItemNaverFeedImportStatusEnum["SUCCESS"] = "SUCCESS";
13
+ StoreItemNaverFeedImportStatusEnum["FAILED"] = "FAILED";
14
+ })(StoreItemNaverFeedImportStatusEnum || (exports.StoreItemNaverFeedImportStatusEnum = StoreItemNaverFeedImportStatusEnum = {}));
@@ -0,0 +1,15 @@
1
+ import { Types } from 'mongoose';
2
+ /**
3
+ * @author jun
4
+ * @description 파일 처리 시도에서 확인한 상품별 MID 후보. 현재값은 storeitemnaverfeeds에서 조회한다.
5
+ * @process 동일 상품의 서로 다른 후보를 보존하고 importLogId로 처리 결과를 연결한다.
6
+ */
7
+ export interface StoreItemNaverFeedMappingLogEntity {
8
+ _id: Types.ObjectId | string;
9
+ itemId: Types.ObjectId | string;
10
+ /** @description MID가 비어 있는 상품은 null로 기록한다. */
11
+ nvMid: string | null;
12
+ /** @description 후보 기록 시각이며 현재 MID의 성공 갱신일과 구분한다. */
13
+ updatedAt: Date;
14
+ importLogId: Types.ObjectId | string;
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -38,6 +38,8 @@ export interface StoreItemNaverFeedEntity {
38
38
  itemId: Types.ObjectId | string;
39
39
  /** @description 네이버 쇼핑 mid */
40
40
  nvMid?: string;
41
+ /** @description 파일 매핑으로 nvMid를 마지막으로 정상 반영한 시각. 기존 데이터는 날짜를 추정하지 않는다. */
42
+ nvMidUpdatedAt?: Date;
41
43
  /** @description 노출 여부 */
42
44
  isShow: boolean;
43
45
  /** @description 커스텀 상품명 */