export interface Employee { id: string; name: string; dept: string; sub: string; activity: string; status: "Present" | "Absent"; in: string; out: string; remark: string; } export interface Contractor { id: string; name: string; role: string; employees: Employee[]; } export interface Supervisor { id: string; name: string; role: string; dept: string; contractors: Contractor[]; } export interface User { id: number; username: string; name: string; role: string; dept: string; status: string; } export interface Allocation { id: number; empId: number; employee: string; contractor: string; activity: string; date: string; totalQty: number; completed: number; remaining: number; rate: number; amount: number; paid: number; status: string; } export interface ChartData { name: string; value: number; color?: string; fill?: string; } export type AttendanceStatus = "CheckedIn" | "CheckedOut" | "Absent" | "HalfDay" | "Late"; export type SwapStatus = "Active" | "Completed" | "Cancelled"; export type SwapReason = "LeftWork" | "Sick" | "FinishedEarly" | "Other"; export interface EmployeeSwap { id: number; employee_id: number; employee_name?: string; original_department_id: number; original_department_name?: string; original_contractor_id?: number; original_contractor_name?: string; target_department_id: number; target_department_name?: string; target_contractor_id?: number; target_contractor_name?: string; swap_reason: SwapReason; reason_details?: string; work_completion_percentage: number; swap_date: string; swapped_by_id: number; swapped_by_name?: string; status: SwapStatus; created_at: string; updated_at: string; }