import { VendorWithType } from "@/db/schema/vendors"; /** * 테이블/엑셀에 보여줄 컬럼 한 칸을 어떻게 렌더링할지 결정하는 설정 */ export interface VendorColumnConfig { /** * "조인 결과" 객체(UserWithCompanyAndRoles)의 어느 필드를 표시할지 */ id: keyof VendorWithType; /** 화면·엑셀에서 보여줄 컬럼명 */ label: string; /** (선택) 그룹핑/카테고리 */ group?: string; /** (선택) Excel에서의 헤더 */ excelHeader?: string; /** (선택) 데이터 타입(예: date, string, number 등), 포맷 지정용 */ type?: string; } /** * 실제로 "User + Company + Roles" 정보 테이블에서 * 어떤 컬럼들을 어떤 순서로 표시할 것인지 정의. */ export const vendorColumnsConfig: VendorColumnConfig[] = [ { id: "vendorCode", label: "업체 코드", excelHeader: "업체 코드", }, { id: "vendorName", label: "업체명", excelHeader: "업체명", }, { id: "vendorTypeName", label: "업체 유형", excelHeader: "업체 유형", // group: "업체 정보", type: "string", }, // 업체 분류 컬럼 추가 (원하는 경우) { id: "vendorCategory", label: "업체 분류", excelHeader: "업체 분류", // group: "업체 정보", type: "string", }, { id: "status", label: "업체 승인 상태", excelHeader: "업체 승인 상태", // group: "Metadata", }, { id: "address", label: "주소", excelHeader: "주소", }, { id: "country", label: "국가", excelHeader: "국가", // type: "string[]", // 필요하면 추가 }, // 필요 시 createdAt도 조인해서 가져왔다면 아래처럼 추가 { id: "email", label: "이메일", excelHeader: "이메일", // group: "Metadata", }, { id: "website", label: "웹사이트", excelHeader: "웹사이트", // group: "Metadata", }, { id: "creditRating", label: "신용평가등급", excelHeader: "신용평가등급", // group: "Metadata", }, { id: "cashFlowRating", label: "현금흐름등급", excelHeader: "웹사이트", // group: "Metadata", }, ];