fix: 프로젝트 전체 TypeScript 타입에러 408개 수정 (tsc --noEmit 0 errors)

- 공통 템플릿 타입 수정 (IntegratedDetailTemplate, UniversalListPage)
- 페이지(app/[locale]) 타입 호환성 수정 (80개)
- 재고/자재 모듈 타입 수정 (StockStatus, ReceivingManagement)
- 생산 모듈 타입 수정 (WorkOrders, WorkerScreen, WorkResults)
- 주문/출고 모듈 타입 수정 (ShipmentManagement, Orders)
- 견적/단가 모듈 타입 수정 (Quotes, Pricing)
- 건설 모듈 타입 수정 (49개, 17개 하위 모듈)
- HR 모듈 타입 수정 (CardManagement, VacationManagement 등)
- 설정 모듈 타입 수정 (PermissionManagement, AccountManagement 등)
- 게시판 모듈 타입 수정 (BoardManagement, BoardList 등)
- 회계 모듈 타입 수정 (VendorManagement, BadDebtCollection 등)
- 기타 모듈 타입 수정 (CEODashboard, clients, vehicle 등)
- 유틸/훅/API 타입 수정 (hooks, contexts, lib)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-01-30 10:07:58 +09:00
parent 8a5cbde5ef
commit a1f4c82cec
154 changed files with 832 additions and 536 deletions

View File

@@ -105,7 +105,15 @@ export interface PageReorderRequest {
*/
export interface ItemSectionRequest {
title: string;
type: 'fields' | 'bom';
type?: 'fields' | 'bom';
section_type?: 'BASIC' | 'BOM' | 'CUSTOM';
page_id?: number | null;
description?: string | null;
order_no?: number;
is_template?: boolean;
is_default?: boolean;
is_collapsible?: boolean;
is_default_open?: boolean;
}
/**
@@ -199,15 +207,18 @@ export interface LinkSectionRequest {
*/
export interface ItemFieldRequest {
field_name: string;
field_key?: string; // 2025-11-28: 필드 키 (영문, 숫자, 언더스코어만 허용, 영문으로 시작)
field_key?: string | null; // 2025-11-28: 필드 키 (영문, 숫자, 언더스코어만 허용, 영문으로 시작)
field_type: 'textbox' | 'number' | 'dropdown' | 'checkbox' | 'date' | 'textarea';
section_id?: number | null;
master_field_id?: number | null;
order_no?: number;
is_required?: boolean;
placeholder?: string;
default_value?: string;
display_condition?: Record<string, any>; // {"field_id": "1", "operator": "equals", "value": "true"}
validation_rules?: Record<string, any>; // {"min": 0, "max": 100, "pattern": "regex"}
options?: Array<{ label: string; value: string }>; // dropdown 옵션
properties?: Record<string, any>; // {"unit": "mm", "precision": 2, "format": "YYYY-MM-DD"}
placeholder?: string | null;
default_value?: string | null;
display_condition?: Record<string, any> | null; // {"field_id": "1", "operator": "equals", "value": "true"}
validation_rules?: Record<string, any> | null; // {"min": 0, "max": 100, "pattern": "regex"}
options?: Array<{ label: string; value: string }> | null; // dropdown 옵션
properties?: Record<string, any> | null; // {"unit": "mm", "precision": 2, "format": "YYYY-MM-DD"}
is_locked?: boolean; // 2025-11-28: 잠금 여부
}