93 lines
2.5 KiB
TypeScript
93 lines
2.5 KiB
TypeScript
/**
|
|
* 회사 관리 관련 타입 정의
|
|
*/
|
|
|
|
// 회사 기본 정보 인터페이스 (DB 테이블 구조 기반)
|
|
export interface Company {
|
|
company_code: string; // 회사 코드 (varchar 32) - PK
|
|
company_name: string; // 회사명 (varchar 64)
|
|
business_registration_number?: string; // 사업자등록번호 (varchar 20)
|
|
representative_name?: string; // 대표자명 (varchar 100)
|
|
representative_phone?: string; // 대표 연락처 (varchar 20)
|
|
email?: string; // 이메일 (varchar 255)
|
|
website?: string; // 웹사이트 (varchar 500)
|
|
address?: string; // 회사 주소 (text)
|
|
writer: string; // 등록자 (varchar 32)
|
|
regdate: string; // 등록일시 (timestamp -> ISO string)
|
|
status: string; // 상태 (varchar 32)
|
|
// 디스크 사용량 정보 (선택적)
|
|
disk_usage?: {
|
|
file_count: number;
|
|
total_size: number;
|
|
total_size_mb: number;
|
|
last_checked: string;
|
|
};
|
|
}
|
|
|
|
// 회사 등록/수정 폼 데이터
|
|
export interface CompanyFormData {
|
|
company_name: string; // 회사명 (필수)
|
|
business_registration_number: string; // 사업자등록번호 (필수)
|
|
representative_name?: string; // 대표자명
|
|
representative_phone?: string; // 대표 연락처
|
|
email?: string; // 이메일
|
|
website?: string; // 웹사이트
|
|
address?: string; // 회사 주소
|
|
}
|
|
|
|
// 회사 검색 필터
|
|
export interface CompanySearchFilter {
|
|
company_name?: string; // 회사명으로 검색
|
|
status?: string; // 상태로 필터링
|
|
}
|
|
|
|
// 회사 관리 모달 상태
|
|
export interface CompanyModalState {
|
|
isOpen: boolean;
|
|
mode: "create" | "edit"; // 등록 모드 or 수정 모드
|
|
selected_company: Company | null;
|
|
form_data: CompanyFormData;
|
|
}
|
|
|
|
// 회사 삭제 다이얼로그 상태
|
|
export interface CompanyDeleteState {
|
|
isOpen: boolean;
|
|
target_company: Company | null;
|
|
}
|
|
|
|
// API 응답 타입
|
|
export interface CompanyApiResponse {
|
|
success: boolean;
|
|
message: string;
|
|
data?: Company | Company[];
|
|
}
|
|
|
|
// 회사 목록 테이블 컬럼 정의
|
|
export interface CompanyTableColumn {
|
|
key: keyof Company;
|
|
label: string;
|
|
sortable?: boolean;
|
|
width?: string;
|
|
}
|
|
|
|
// 디스크 사용량 정보
|
|
export interface DiskUsageInfo {
|
|
company_code: string;
|
|
file_count: number;
|
|
total_size: number;
|
|
total_size_mb: number;
|
|
last_checked: string;
|
|
}
|
|
|
|
// 전체 디스크 사용량 통계
|
|
export interface AllDiskUsageInfo {
|
|
companies: DiskUsageInfo[];
|
|
summary: {
|
|
total_companies: number;
|
|
total_files: number;
|
|
total_size: number;
|
|
total_size_mb: number;
|
|
};
|
|
last_checked: string;
|
|
}
|