export interface MatchedVendorRow { /** 기존에 row.id 로 들어가는 필드 → 사실상 vendor의 pk */ id: number /** vendorID 라고도 쓰는 중복 필드가 있다면 여기서 정리 */ vendorID: number vendorName: string vendorCode: string | null address: string | null country: string | null email: string | null website: string | null vendorStatus: string | null rfqVendorStatus: string | null rfqVendorUpdated: Date | null /** 추가로 붙는 필드 */ comments: Array<{ id: number commentText: string vendorId?: number evaluationId?: number createdAt?: Date commentedBy?: number }> } /** * 테이블/엑셀에 보여줄 컬럼 한 칸을 어떻게 렌더링할지 결정하는 설정 */ export interface VendorRfqColumnConfig { /** * "조인 결과" 객체(UserWithCompanyAndRoles)의 어느 필드를 표시할지 */ id: keyof MatchedVendorRow; /** 화면·엑셀에서 보여줄 컬럼명 */ label: string; /** (선택) 그룹핑/카테고리 */ group?: string; /** (선택) Excel에서의 헤더 */ excelHeader?: string; /** (선택) 데이터 타입(예: date, string, number 등), 포맷 지정용 */ type?: string; } /** * 실제로 "User + Company + Roles" 정보 테이블에서 * 어떤 컬럼들을 어떤 순서로 표시할 것인지 정의. */ export const vendorRfqColumnsConfig: VendorRfqColumnConfig[] = [ { id: "vendorName", label: "Vendor Name", excelHeader: "Vendor Name", }, { id: "vendorCode", label: "Vendor Code", excelHeader: "Vendor Code", }, { id: "email", label: "Email", excelHeader: "Email", }, { id: "vendorStatus", label: "Vendor Status", excelHeader: "Vendor Status", }, // 새로 추가 (rfq_vendors join 필드) { id: "rfqVendorStatus", label: "RFQ Status", excelHeader: "RFQ Status", group: "RFQ Info", }, { id: "rfqVendorUpdated", label: "RFQ Updated At", excelHeader: "RFQ Updated", group: "RFQ Info", type: "date", }, ]