From 989c118ad2a9b63b78431c648d16051e647546cf Mon Sep 17 00:00:00 2001 From: hyeonsu Date: Tue, 9 Sep 2025 10:25:13 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=AC=EB=9F=AC=20=EC=BB=AC=EB=9F=BC=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=EC=8B=9C=20=EC=89=BC=ED=91=9C=EB=A1=9C=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataflow/ConnectionSetupModal.tsx | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/frontend/components/dataflow/ConnectionSetupModal.tsx b/frontend/components/dataflow/ConnectionSetupModal.tsx index b23f7f4f..5ed118ef 100644 --- a/frontend/components/dataflow/ConnectionSetupModal.tsx +++ b/frontend/components/dataflow/ConnectionSetupModal.tsx @@ -171,22 +171,49 @@ export const ConnectionSetupModal: React.FC = ({ break; } - // API 호출을 위한 관계 데이터 준비 + // 선택된 컬럼들 추출 + const selectedColumnsData = connection.selectedColumnsData || {}; + const tableNames = Object.keys(selectedColumnsData); + const fromTable = tableNames[0]; + const toTable = tableNames[1]; + + const fromColumns = selectedColumnsData[fromTable]?.columns || []; + const toColumns = selectedColumnsData[toTable]?.columns || []; + + if (fromColumns.length === 0 || toColumns.length === 0) { + toast.error("선택된 컬럼이 없습니다."); + return; + } + + toast.loading("관계를 생성하고 있습니다...", { id: "create-relationship" }); + + // 단일 관계 데이터 준비 (모든 선택된 컬럼 정보 포함) const relationshipData: Omit = { relationshipName: config.relationshipName, fromTableName: connection.fromNode.tableName, - fromColumnName: connection.fromColumn || "", + fromColumnName: fromColumns.join(","), // 여러 컬럼을 콤마로 구분 toTableName: connection.toNode.tableName, - toColumnName: connection.toColumn || "", + toColumnName: toColumns.join(","), // 여러 컬럼을 콤마로 구분 relationshipType: config.relationshipType, connectionType: config.connectionType, companyCode: companyCode, - settings: settings, + settings: { + ...settings, + multiColumnMapping: { + fromColumns: fromColumns, + toColumns: toColumns, + fromTable: selectedColumnsData[fromTable]?.displayName || fromTable, + toTable: selectedColumnsData[toTable]?.displayName || toTable, + }, + isMultiColumn: fromColumns.length > 1 || toColumns.length > 1, + columnCount: { + from: fromColumns.length, + to: toColumns.length, + }, + }, isActive: "Y", }; - toast.loading("관계를 생성하고 있습니다...", { id: "create-relationship" }); - // API 호출 const createdRelationship = await DataFlowAPI.createRelationship(relationshipData);