@g1cloud/entity-modeler-next 5.0.0-beta.20 → 5.0.0-beta.24

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.
@@ -1,6 +1,17 @@
1
- import { LogicalModel, ModelId, SuperClassCatalog, EmbeddableCatalog } from './types';
1
+ import { Entity, LogicalModel, ModelId, SuperClassCatalog, EmbeddableCatalog } from './types';
2
2
  import { JavaTypeDef } from './javaTypes';
3
3
  export interface ScaffoldOptions {
4
+ /**
5
+ * **산출 불가 대상 자동 제외**(기본 `true`) — 엔티티명 미지정 / `@Id` 없는 JPA 엔티티는 파일을 만들지
6
+ * 않는다. 레거시 배치 선택 계층 패리티(`EntityJavaSrcGen.generateImplModel:105·108`이 각각
7
+ * `isBlank(entityName)`·`JPA_ENTITY && !hasIdField`를 `logger.warn + continue`로 스킵).
8
+ *
9
+ * ★레거시는 이 판정을 **선택 계층**(generateImplModel)에 두고 렌더러(EntityJavaFile)와 분리한다.
10
+ * lib은 두 역할이 `scaffoldEntityJava` 한 함수에 겹쳐 있어 옵션으로 seam을 만든다 — 모듈 산출
11
+ * (호스트 오라클)은 기본값을 쓰고, **렌더러로 직접 쓰는 경우**(단위 테스트·부분 렌더 프리뷰)는
12
+ * `false`로 꺼서 PK 없는 축약 모델도 렌더한다.
13
+ */
14
+ skipUngeneratable?: boolean;
4
15
  /** 저장값→소스 타입 역해소 카탈로그. 미주입 시 lib 내장 `JAVA_TYPES` 폴백(호스트 javaTypeCatalog 미러). */
5
16
  javaTypeCatalog?: readonly JavaTypeDef[];
6
17
  /** 임베더블 타입 해소용(EMBED_PREDEF 필드 타입·클래스명). 미주입 시 모델 type 폴백 + fillIn. */
@@ -59,4 +70,22 @@ export interface ScaffoldedEntity {
59
70
  * 대상 엔티티들을 JPA 자바 소스로 렌더한다. `logical`은 참조 폐포(FK 대상 등) 해소를 위해 전체를 받고,
60
71
  * `targetIds`가 실제 산출(파일 생성) 스코프다. 스코프 밖 엔티티는 읽기(폐포)에만 쓰이고 산출되지 않는다.
61
72
  */
73
+ /**
74
+ * 산출 대상 판정 — 레거시 배치 선택 계층(`EntityJavaSrcGen.generateImplModel:105·108`) 패리티.
75
+ *
76
+ * - 엔티티명 미지정: 방출하면 `undefined.java` / `public class undefined {`가 나간다(실측 module-order).
77
+ * - `@Id` 없는 JPA 엔티티: JPA는 식별자가 필수라 방출해도 부트스트랩 불가.
78
+ *
79
+ * 판정은 레거시 `hasIdField`→`countIdAttributes`(자기 속성 중 identifier, attrType 무관)와 동형.
80
+ * 레거시의 `countReferredIdAttributes` 보정분은 v2에선 식별 전파로 자식 attributes에 FK가
81
+ * `identifier=true`로 물질화되므로 여기에 이미 포함된다.
82
+ *
83
+ * ⚠️ 레거시는 abstractClass도 예외 없이 스킵한다(:108에 예외 조항 없음). lib `CHK-JPA-1`은 추상 베이스를
84
+ * 면제하므로 "모델은 정당한데 산출은 제외"되는 divergence가 이론상 가능하다 — 다만 abstract이면서 PK 없는
85
+ * `@Entity`는 `@MappedSuperclass` 없이 JPA 자체가 불가하고, 실 데이터(로컬 BNKR_SALES) PK 없는 JPA 엔티티
86
+ * 17건 중 abstract는 0건이라 레거시 시맨틱을 그대로 따른다.
87
+ *
88
+ * 모델 레벨 신호는 검증이 담당한다 — 엔티티명 빈값=`CHK-NAME-4`, PK 부재=`CHK-JPA-1`.
89
+ */
90
+ export declare function isGeneratable(entity: Entity): boolean;
62
91
  export declare function scaffoldEntityJava(logical: LogicalModel, targetIds: readonly ModelId[], opts?: ScaffoldOptions): ScaffoldedEntity[];