summaryrefslogtreecommitdiff
path: root/config/euserColumnsConfig.ts
blob: a73b5ba9a6da46e36e6e1f1ad89323cdcfa64ff9 (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
import { UserView } from "@/db/schema/users";

/** 
 * 테이블/엑셀에 보여줄 컬럼 한 칸을 어떻게 렌더링할지 결정하는 설정 
 */
export interface UserColumnConfig {
  /** 
   * "조인 결과" 객체(UserWithCompanyAndRoles)의 어느 필드를 표시할지 
   */
  id: keyof UserView;

  /** 화면·엑셀에서 보여줄 컬럼명 */
  label: string;

  /** (선택) 그룹핑/카테고리 */
  group?: string;

  /** (선택) Excel에서의 헤더 */
  excelHeader?: string;

  /** (선택) 데이터 타입(예: date, string, number 등), 포맷 지정용 */
  type?: string;
}

/**
 * 실제로 "User + Company + Roles" 정보 테이블에서
 * 어떤 컬럼들을 어떤 순서로 표시할 것인지 정의.
 */
export const euserColumnsConfig: UserColumnConfig[] = [
  // 성명
  { id: "user_name", label: "성명", excelHeader: "성명" },
  // 사번
  { id: "employee_number", label: "사번", excelHeader: "사번" },
  // 부서
  { id: "dept_name", label: "부서", excelHeader: "부서" },
  // 녹스ID
  { id: "knox_id", label: "녹스ID", excelHeader: "녹스ID" },
  // E-Mail
  { id: "user_email", label: "E-Mail", excelHeader: "E-Mail" },
  // 잠금여부
  { id: "is_locked", label: "잠금여부", excelHeader: "잠금여부" },
  // 휴직여부
  { id: "is_absent", label: "휴직여부", excelHeader: "휴직여부" },
  // 삭제여부
  { id: "is_deleted_on_non_sap", label: "삭제여부", excelHeader: "삭제여부" },
  // 임직원여부
  { id: "is_regular_employee", label: "임직원여부", excelHeader: "임직원여부" },
  // 생성일자
  { id: "created_at", label: "생성일자", excelHeader: "생성일자", type: "date" },
  // 수정일자
  { id: "updated_at", label: "수정일자", excelHeader: "수정일자", type: "date" },
  // 삭제일자
  { id: "deactivated_at", label: "삭제일자", excelHeader: "삭제일자", type: "date" },
  // Role
  { id: "roles", label: "Role", excelHeader: "Role" },
];