ERP-node/frontend/types/user.ts

78 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-08-21 09:41:46 +09:00
/**
*
*/
// 사용자 정보 인터페이스 (프론트엔드 친화적 camelCase)
export interface User {
sabun: string; // 사번
user_id: string; // 사용자 ID
user_name: string; // 사용자명
user_name_eng?: string; // 영문명
user_name_cn?: string; // 중문명
company_name?: string; // 회사명
dept_code: string; // 부서 코드
dept_name: string; // 부서명
position_code?: string; // 직책 코드
position_name: string; // 직책
email: string; // 이메일
tel: string; // 전화번호
cell_phone: string; // 휴대폰
user_type?: string; // 사용자 유형 코드
user_type_name: string; // 사용자 유형명
regdate: string; // 등록일 (YYYY-MM-DD)
regdate_org?: string; // 원본 등록일
status: string; // 상태 (active, inactive)
data_type?: string; // 데이터 타입
enddate?: string; // 퇴사일
rnum?: number; // 행 번호
}
// 사용자 검색 필터
export interface UserSearchFilter {
searchType?:
| "all"
| "sabun"
| "company_name"
| "dept_name"
| "position_name"
| "user_id"
| "user_name"
| "tel"
| "email"; // 검색 대상
searchValue?: string; // 검색어
}
// 사용자 목록 테이블 컬럼 정의
export interface UserTableColumn {
key: string;
label: string;
sortable?: boolean;
width?: string;
}
// 사용자 등록/수정 폼 데이터
export interface UserFormData {
user_id: string;
user_name: string;
dept_code: string;
dept_name: string;
position_name: string;
email: string;
tel: string;
cell_phone: string;
user_type_name: string;
status: string;
}
// 사용자 상태 상수
export const USER_STATUS = {
ACTIVE: "active",
INACTIVE: "inactive",
} as const;
// 사용자 상태 라벨
export const USER_STATUS_LABELS = {
[USER_STATUS.ACTIVE]: "활성",
[USER_STATUS.INACTIVE]: "비활성",
} as const;