import { ConditionNode } from "@/lib/api/dataflow"; // 연결 정보 타입 export interface ConnectionInfo { fromNode: { id: string; tableName: string; displayName: string; }; toNode: { id: string; tableName: string; displayName: string; }; fromColumn?: string; toColumn?: string; selectedColumnsData?: { [tableName: string]: { displayName: string; columns: string[]; }; }; existingRelationship?: { relationshipName: string; connectionType: string; settings?: Record; }; } // 연결 설정 타입 export interface ConnectionConfig { relationshipName: string; connectionType: "simple-key" | "data-save" | "external-call"; fromColumnName: string; toColumnName: string; settings?: Record; } // 단순 키값 연결 설정 export interface SimpleKeySettings { notes: string; } // 데이터 저장 설정 export interface DataSaveSettings { actions: Array<{ id: string; name: string; actionType: "insert" | "update" | "delete" | "upsert"; conditions?: ConditionNode[]; fieldMappings: Array<{ sourceTable?: string; sourceField: string; targetTable?: string; targetField: string; defaultValue?: string; transformFunction?: string; }>; splitConfig?: { sourceField: string; // 분할할 소스 필드 delimiter: string; // 구분자 (예: ",") targetField: string; // 분할된 값이 들어갈 필드 }; }>; } // 외부 호출 설정 export interface ExternalCallSettings { callType: "rest-api" | "email" | "webhook" | "ftp" | "queue"; apiUrl?: string; httpMethod?: "GET" | "POST" | "PUT" | "DELETE"; headers?: string; bodyTemplate?: string; } // ConnectionSetupModal Props 타입 export interface ConnectionSetupModalProps { isOpen: boolean; connection: ConnectionInfo | null; companyCode: string; onConfirm: (relationship: any) => void; onCancel: () => void; }