81 lines
1.9 KiB
TypeScript
81 lines
1.9 KiB
TypeScript
/**
|
|
* 회사 관리 관련 타입 정의
|
|
*/
|
|
|
|
// 회사 기본 정보 인터페이스 (DB 테이블 구조 기반)
|
|
export interface Company {
|
|
company_code: string; // 회사 코드 (varchar 32) - PK
|
|
company_name: string; // 회사명 (varchar 64)
|
|
writer: string; // 등록자 (varchar 32)
|
|
regdate: string; // 등록일시 (timestamp -> ISO string)
|
|
status: string; // 상태 (varchar 32)
|
|
// 디스크 사용량 정보 (선택적)
|
|
diskUsage?: {
|
|
fileCount: number;
|
|
totalSize: number;
|
|
totalSizeMB: number;
|
|
lastChecked: string;
|
|
};
|
|
}
|
|
|
|
// 회사 등록/수정 폼 데이터
|
|
export interface CompanyFormData {
|
|
company_name: string; // 등록 시에는 회사명만 필요
|
|
}
|
|
|
|
// 회사 검색 필터
|
|
export interface CompanySearchFilter {
|
|
company_name?: string; // 회사명으로 검색
|
|
status?: string; // 상태로 필터링
|
|
}
|
|
|
|
// 회사 관리 모달 상태
|
|
export interface CompanyModalState {
|
|
isOpen: boolean;
|
|
mode: "create" | "edit"; // 등록 모드 or 수정 모드
|
|
selectedCompany: Company | null;
|
|
formData: CompanyFormData;
|
|
}
|
|
|
|
// 회사 삭제 다이얼로그 상태
|
|
export interface CompanyDeleteState {
|
|
isOpen: boolean;
|
|
targetCompany: 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 {
|
|
companyCode: string;
|
|
fileCount: number;
|
|
totalSize: number;
|
|
totalSizeMB: number;
|
|
lastChecked: string;
|
|
}
|
|
|
|
// 전체 디스크 사용량 통계
|
|
export interface AllDiskUsageInfo {
|
|
companies: DiskUsageInfo[];
|
|
summary: {
|
|
totalCompanies: number;
|
|
totalFiles: number;
|
|
totalSize: number;
|
|
totalSizeMB: number;
|
|
};
|
|
lastChecked: string;
|
|
}
|