2348800e68
Build & Deploy to K8s / build-and-deploy (push) Successful in 9m22s
카테고리/캐스케이딩 시스템 (B/C/D) 전부 폐기:
- BE: mapper/Service/Controller 9세트 삭제 (cascading*, categoryTree, tableCategoryValue, categoryValueCascading, codeMerge)
- FE: 페이지 3 + API 8 + hooks 2 + 폐기 컴포넌트 6 삭제, 14곳 의존성 정리
- DB: 12 테이블 DROP, TABLE_TYPE_COLUMNS.CODE_CATEGORY → CODE_INFO rename
신설 commonCode 마스터-디테일:
- code_info: 1레벨 그룹 마스터
- code_detail: 2~∞ depth 재귀 트리 (parent_detail_id self-FK, depth 자동 계산)
- API: /api/common-codes/{info,detail}
- CodeCategoryFormModal/Panel → CodeInfoFormModal/Panel rename
- code_category 컬럼명 전부 code_info 로 치환 (mapper/Java/FE)
- 옛 commonCode API URL (/categories/...) → getCodeOptions 어댑터 + /detail?code_info=... 전환
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
// 공통코드 (마스터-디테일) 타입 정의
|
|
//
|
|
// 새 구조 (2026-05-15):
|
|
// code_info — 그룹 마스터 (PK: code_info)
|
|
// code_detail — 디테일 트리 (PK: code_detail_id, parent_detail_id NULL 이면 그룹 직속)
|
|
//
|
|
// 백엔드가 Map<String, Object> 를 반환하므로 FE 도 Record<string, any> 로 받는다.
|
|
// (CLAUDE.md: 별도 인터페이스 정의 금지 — Record<string, any> 일관 사용)
|
|
|
|
/** code_info 마스터 row */
|
|
export type CodeInfo = Record<string, any>;
|
|
|
|
/** code_detail 트리 노드 */
|
|
export type CodeDetail = Record<string, any>;
|
|
|
|
/** 표준 API 응답 */
|
|
export interface ApiResponse<T = any> {
|
|
success: boolean;
|
|
data?: T;
|
|
message: string;
|
|
error?: string;
|
|
total?: number;
|
|
}
|
|
|
|
/** 그룹 목록 조회 파라미터 */
|
|
export interface GetCodeInfoListQuery {
|
|
search?: string;
|
|
is_active?: boolean;
|
|
page?: number;
|
|
size?: number;
|
|
}
|
|
|
|
/** 디테일 트리 조회 파라미터 */
|
|
export interface GetCodeDetailListQuery {
|
|
code_info: string;
|
|
search?: string;
|
|
is_active?: boolean;
|
|
}
|
|
|
|
/** 중복 검사 응답 */
|
|
export interface DuplicateCheckResult {
|
|
isDuplicate: boolean;
|
|
message: string;
|
|
field: string;
|
|
value: string;
|
|
}
|