import { Checkbox } from "@/components/ui/checkbox" import { Badge } from "@/components/ui/badge" import { type ColumnDef } from "@tanstack/react-table" import { DataTableColumnHeaderSimple } from "@/components/data-table/data-table-column-simple-header" // AVL 상세 아이템 타입 export type AvlDetailItem = { id: string no: number selected: boolean // AVL 리스트 ID (외래키) avlListId: number // 설계 정보 equipBulkDivision: 'EQUIP' | 'BULK' disciplineCode: string disciplineName: string // 자재 정보 materialNameCustomerSide: string packageCode: string packageName: string materialGroupCode: string materialGroupName: string // 협력업체 정보 vendorId?: number vendorName: string vendorCode: string avlVendorName: string tier: string // FA 정보 faTarget: boolean faStatus: string // Agent 정보 isAgent: boolean agentStatus: string // UI 표시용 // 계약 서명주체 contractSignerId?: number contractSignerName: string contractSignerCode: string // 위치 정보 headquarterLocation: string manufacturingLocation: string // SHI Qualification shiAvl: boolean shiBlacklist: boolean shiBcc: boolean // 기술영업 견적결과 salesQuoteNumber: string quoteCode: string salesVendorInfo: string salesCountry: string totalAmount: string quoteReceivedDate: string // 업체 실적 현황(구매) recentQuoteDate: string recentQuoteNumber: string recentOrderDate: string recentOrderNumber: string // 기타 remarks: string // 타임스탬프 createdAt: string updatedAt: string } // 테이블 컬럼 정의 export const columns: ColumnDef[] = [ // 기본 정보 그룹 { header: "기본 정보", columns: [ { accessorKey: "no", header: ({ column }) => ( ), size: 60, }, { accessorKey: "equipBulkDivision", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("equipBulkDivision") as string return ( {value || "-"} ) }, size: 120, }, { accessorKey: "disciplineName", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("disciplineName") as string return {value || "-"} }, size: 120, }, { accessorKey: "materialNameCustomerSide", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("materialNameCustomerSide") as string return {value || "-"} }, size: 150, }, { accessorKey: "packageName", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("packageName") as string return {value || "-"} }, size: 130, }, { accessorKey: "materialGroupCode", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("materialGroupCode") as string return {value || "-"} }, size: 120, }, { accessorKey: "materialGroupName", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("materialGroupName") as string return {value || "-"} }, size: 130, }, { accessorKey: "vendorCode", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("vendorCode") as string return {value || "-"} }, size: 120, }, { accessorKey: "vendorName", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("vendorName") as string return {value || "-"} }, size: 140, }, { accessorKey: "avlVendorName", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("avlVendorName") as string return {value || "-"} }, size: 140, }, { accessorKey: "tier", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("tier") as string if (!value) return - const tierColor = { "Tier 1": "bg-green-100 text-green-800", "Tier 2": "bg-yellow-100 text-yellow-800", "Tier 3": "bg-red-100 text-red-800" }[value] || "bg-gray-100 text-gray-800" return ( {value} ) }, size: 100, }, ], }, // FA 정보 그룹 { header: "FA 정보", columns: [ { accessorKey: "faTarget", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("faTarget") as boolean return ( {value ? "대상" : "비대상"} ) }, size: 80, }, { accessorKey: "faStatus", header: ({ column }) => ( ), cell: ({ row }) => { const value = row.getValue("faStatus") as string return {value || "-"} }, size: 100, }, ], }, // SHI Qualification 그룹 { header: "SHI Qualification", columns: [ { accessorKey: "shiAvl", header: "AVL", cell: ({ row }) => { const value = row.getValue("shiAvl") as boolean return ( ) }, size: 80, }, { accessorKey: "shiBlacklist", header: "Blacklist", cell: ({ row }) => { const value = row.getValue("shiBlacklist") as boolean return ( ) }, size: 100, }, { accessorKey: "shiBcc", header: "BCC", cell: ({ row }) => { const value = row.getValue("shiBcc") as boolean return ( ) }, size: 80, }, ], }, ]