summaryrefslogtreecommitdiff
path: root/config/vendorRfbColumnsConfig.ts
blob: 92acd1782efcae6b6250cbf6ac31ed396a3acddb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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",
  },

]