"use client"; import React, { useState } from "react"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { CheckCircle, Save } from "lucide-react"; interface SaveRelationshipDialogProps { open: boolean; onOpenChange: (open: boolean) => void; onSave: (relationshipName: string, description?: string) => void; actionType: "insert" | "update" | "delete" | "upsert"; fromTable?: string; toTable?: string; } /** * πŸ’Ύ 관계 μ €μž₯ λ‹€μ΄μ–Όλ‘œκ·Έ * - 관계 이름 μž…λ ₯ * - μ„€λͺ… μž…λ ₯ (선택사항) * - μ•‘μ…˜ νƒ€μž…λ³„ μ œμ•ˆ 이름 */ const SaveRelationshipDialog: React.FC = ({ open, onOpenChange, onSave, actionType, fromTable, toTable, }) => { const [relationshipName, setRelationshipName] = useState(""); const [description, setDescription] = useState(""); // μ•‘μ…˜ νƒ€μž…λ³„ μ œμ•ˆ 이름 생성 const generateSuggestedName = () => { if (!fromTable || !toTable) return ""; const actionMap = { insert: "μž…λ ₯", update: "μˆ˜μ •", delete: "μ‚­μ œ", upsert: "병합", }; return `${fromTable}_${toTable}_${actionMap[actionType]}`; }; const handleSave = () => { if (!relationshipName.trim()) return; onSave(relationshipName.trim(), description.trim() || undefined); onOpenChange(false); // 폼 μ΄ˆκΈ°ν™” setRelationshipName(""); setDescription(""); }; const handleSuggestName = () => { const suggested = generateSuggestedName(); if (suggested) { setRelationshipName(suggested); } }; return ( 관계 μ €μž₯ 데이터 μ—°κ²° κ΄€κ³„μ˜ 이름과 μ„€λͺ…을 μž…λ ₯ν•˜μ„Έμš”.
{/* 관계 이름 */}
setRelationshipName(e.target.value)} className="flex-1" />
{/* μ„€λͺ… (선택사항) */}