From 2650b7c0bb0ea12b68a58c0439f72d61df04b2f1 Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Fri, 25 Jul 2025 07:51:15 +0000
Subject: (대표님) 정기평가 대상, 미들웨어 수정, nextauth 토큰 처리 개선, GTC
 등 (최겸) 기술영업
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../add-basic-contract-template-dialog.tsx         | 30 +++++++++++++++++-----
 1 file changed, 23 insertions(+), 7 deletions(-)

(limited to 'lib/basic-contract/template/add-basic-contract-template-dialog.tsx')

diff --git a/lib/basic-contract/template/add-basic-contract-template-dialog.tsx b/lib/basic-contract/template/add-basic-contract-template-dialog.tsx
index fd1bd333..6b6ab105 100644
--- a/lib/basic-contract/template/add-basic-contract-template-dialog.tsx
+++ b/lib/basic-contract/template/add-basic-contract-template-dialog.tsx
@@ -219,16 +219,21 @@ export function AddTemplateDialog() {
     setIsLoading(true);
     try {
       let uploadResult = null;
-
+  
+      // 📝 파일 업로드가 필요한 경우에만 업로드 진행
       if (formData.file) {
         const fileId = uuidv4();
         uploadResult = await uploadFileInChunks(formData.file, fileId);
-
+  
         if (!uploadResult?.success) {
           throw new Error("파일 업로드에 실패했습니다.");
         }
       }
-
+  
+      // 📝 General GTC이고 파일이 없는 경우와 다른 경우 구분 처리
+      const isGeneralGTC = formData.templateName === "General GTC";
+      const hasFile = uploadResult && uploadResult.success;
+  
       const saveResponse = await fetch('/api/upload/basicContract/complete', {
         method: 'POST',
         headers: { 'Content-Type': 'application/json' },
@@ -245,17 +250,28 @@ export function AddTemplateDialog() {
           sysApplicable: formData.sysApplicable,
           infraApplicable: formData.infraApplicable,
           status: "ACTIVE",
-          fileName: uploadResult?.fileName || `${formData.templateName}_v1.docx`,
-          filePath: uploadResult?.filePath || "",
+          
+          // 📝 파일이 있는 경우에만 fileName과 filePath 전송
+          ...(hasFile && {
+            fileName: uploadResult.fileName,
+            filePath: uploadResult.filePath,
+          }),
+          
+          // 📝 파일이 없는 경우 null 전송 (스키마가 nullable이어야 함)
+          ...(!hasFile && {
+            fileName: null,
+            filePath: null,
+          })
         }),
         next: { tags: ["basic-contract-templates"] },
       });
-
+  
       const saveResult = await saveResponse.json();
       if (!saveResult.success) {
+        console.log(saveResult.error);
         throw new Error(saveResult.error || "템플릿 정보 저장에 실패했습니다.");
       }
-
+  
       toast.success('템플릿이 성공적으로 추가되었습니다.');
       form.reset();
       setSelectedFile(null);
-- 
cgit v1.2.3

