Files
pipeline/frontend/types/screen.ts
T
kjs 4294fbf608 feat: 채번 규칙 테이블 기반 자동 필터링 구현
- 채번 규칙 scope_type을 table로 단순화
- 화면의 테이블명을 자동으로 감지하여 채번 규칙 필터링
- TextInputConfigPanel에 screenTableName prop 추가
- getAvailableNumberingRulesForScreen API로 테이블 기반 조회
- NumberingRuleDesigner에서 자동으로 테이블명 설정
- webTypeConfigConverter 유틸리티 추가 (기존 화면 호환성)
- AutoGenerationConfig 타입 개선 (enabled, options.numberingRuleId)
- 채번 규칙 선택 UI에서 ID 제거, 설명 추가
- 불필요한 console.log 제거

Backend:
- numberingRuleService: 테이블 기반 필터링 로직 구현
- numberingRuleController: available-for-screen 엔드포인트 수정

Frontend:
- TextInputConfigPanel: 테이블명 기반 채번 규칙 로드
- NumberingRuleDesigner: 적용 범위 UI 제거, 테이블명 자동 설정
- ScreenDesigner: webTypeConfig → autoGeneration 변환 로직 통합
- DetailSettingsPanel: autoGeneration 속성 매핑 개선
2025-11-07 14:27:07 +09:00

148 lines
3.4 KiB
TypeScript

/**
* 🔄 레거시 호환성을 위한 re-export 파일
*
* @deprecated 이 파일은 단계적으로 제거될 예정입니다.
* 새로운 코드에서는 다음을 사용해주세요:
* - import { ... } from "@/types" (통합 타입 시스템)
* - import { ... } from "@/types/screen-management" (화면관리 전용)
* - import { ... } from "@/types/unified-core" (핵심 공통 타입)
*/
// 🎯 새로운 통합 타입 시스템에서 re-export
export * from "./index";
// 🔄 기존 호환성을 위한 타입 별칭들
export type {
// 핵심 타입들 (unified-core에서)
WebType,
ButtonActionType,
ComponentType,
Position,
Size,
CommonStyle as ComponentStyle,
ValidationRule,
// 컴포넌트 타입들 (screen-management에서)
ComponentData,
BaseComponent,
WidgetComponent,
ContainerComponent,
GroupComponent,
DataTableComponent,
FileComponent,
// 웹타입 설정들 (screen-management에서)
WebTypeConfig,
DateTypeConfig,
NumberTypeConfig,
SelectTypeConfig,
TextTypeConfig,
FileTypeConfig,
EntityTypeConfig,
ButtonTypeConfig,
// 화면 관련 (screen-management에서)
ScreenDefinition,
CreateScreenRequest,
UpdateScreenRequest,
LayoutData,
GridSettings,
ScreenTemplate,
ScreenResolution,
GroupState,
// 화면 해상도 상수
SCREEN_RESOLUTIONS,
// 데이터 테이블 (screen-management에서)
DataTableColumn,
DataTableFilter,
// 파일 업로드 (screen-management에서)
UploadedFile,
// 테이블 정보 (table-management에서)
TableInfo,
UnifiedColumnInfo as ColumnInfo,
// API 응답들
PaginatedResponse,
} from "./index";
// 🔄 타입 가드 함수들 re-export
export {
// 핵심 타입 가드들
isWebType,
isButtonActionType,
isComponentType,
// 컴포넌트 타입 가드들
isWidgetComponent,
isContainerComponent,
isGroupComponent,
isDataTableComponent,
isFileComponent,
// 안전한 캐스팅 함수들
asWidgetComponent,
asContainerComponent,
asGroupComponent,
asDataTableComponent,
asFileComponent,
// 유틸리티 함수들
ynToBoolean,
booleanToYN,
} from "./index";
// ===== 레거시 호환성을 위한 추가 타입들 =====
// 🔄 기존 호환성을 위한 타입 별칭들
import { ContainerComponent } from "./index";
/**
* @deprecated ContainerComponent를 사용하세요
*/
export interface RowComponent extends ContainerComponent {
type: "row";
}
/**
* @deprecated ContainerComponent를 사용하세요
*/
export interface ColumnComponent extends ContainerComponent {
type: "column";
}
/**
* @deprecated ContainerComponent를 사용하세요
*/
export interface AreaComponent extends ContainerComponent {
type: "area";
layoutType?: "absolute" | "flex" | "grid";
}
/**
* @deprecated 사용하지 않는 타입입니다
*/
export type AutoGenerationType = "table" | "form" | "mixed";
/**
* @deprecated 사용하지 않는 타입입니다
*/
export interface AutoGenerationConfig {
type: AutoGenerationType;
enabled?: boolean;
tableName?: string;
includeSearch?: boolean;
includePagination?: boolean;
options?: {
length?: number; // 랜덤 문자열/숫자 길이
prefix?: string; // 접두사
suffix?: string; // 접미사
format?: string; // 시간 형식 (current_time용)
startValue?: number; // 시퀀스 시작값
numberingRuleId?: string; // 채번 규칙 ID (numbering_rule 타입용)
};
}