import { EmployeeType } from './employee.type'; export interface RequestApprovalDate { tanggal: string; durasiText: ScheduleValue; durasiDays: 1 | 0.5; } export type ScheduleValue = 'satuHari' | 'setengahPagi' | 'setengahSore'; export type RequestType = 'Cuti' | 'Cuti (Unpaid)' | 'Izin' | 'Izin Khusus' | 'Sakit'; export type RequestApprovalStatus = 'Waiting Approval' | 'Approving' | 'Approved' | 'Approved History' | 'Rejected' | 'Cancelled'; export interface RequestApproval { _id: string; employee: string; fullName: string; profilePicture: string; employeeType: EmployeeType; position: string; createdAt: string; keterangan: string; status: RequestApprovalStatus; type: RequestType; nomorSurat: string; listTidakMasuk: RequestApprovalDate[]; } export interface RequestDetail extends RequestApproval { suratIzinDokter: string; resepDokter: string; kartuBpjs: string; kwitansi: string; lampiran: string; } export interface Approvers { _id: number; approvers: ApproverList[]; level: number; type: 'And' | 'Or'; isDone: boolean; canCurrentUserSelectThisLevel: boolean; } export interface ApproverList { approver: Approver; status: 'Menyetujui' | 'Menunggu Approval...' | 'Tidak Terlibat' | 'Menolak'; isNotInvolved?: boolean; keterangan?: string; approvedAt?: string; } export interface Approver { _id: string; nama: string; } export interface RequestLimits { sick: number; leave: number; } export interface EmployeeOption { label: string; value: string; cutiLeft: number; employeeType: EmployeeType; bpjsCard?: string; } export interface LeaveLateAllowance { jatahCuti: number; jatahTelat: number; }