import { EmployeeType } from './employee.type'; export interface AbsenceListResponse { totalRecords: number; data: AbsenceListData[]; late: number; lembur: number; alpha: number; izin: number; sakit: number; cuti: number; cutiUnpaid: number; } export interface AbsenceListData { _id: string; profilePicture?: string; fullName: string; employeeType: string; company: string; division: string; position: string; masuk: number; late: number; totalLateMinutes: number; lembur: number; alpha: number; izin: number; sakit: number; cuti: number; cutiUnpaid: number; } export type AbsenceDetail = { profilePicture: string; namaKaryawan: string; jenisKaryawan: EmployeeType; employeeId: string; posisi: string; divisi: string; sisaCutiBulanLalu?: number; ambilCutiBulanIni: number; sisaCutiSekarang: number; cutiUnpaidBulanIni: number; terlambatBulanIni: number; totalLateMinutes: number; lembur: number; sakit: number; alpha: number; izin: number; totalRecords: number; currentMonthHasVisitation: boolean; data: AbsenceDetailDay[]; }; export type AbsenceDetailDay = { id: string; personId: string; date: string; day: string; checkIn: string; checkOut: string; masuk: number; late: number; lembur: number; alpha: number; sakit: number; izin: number; cuti: number; cutiUnpaid: number; visitation: string[]; note: string; data: AbsenceDetailEntry[]; isWorkDays: boolean; isNationalHoliday: boolean; isJointHoliday: boolean; createdAt: string; updatedAt: string; }; export type AbsenceDetailEntry = { _id: string; personId: string; type: AbsenceOfficeType | AbsenceVisitType; agenda?: AgendaType; customer?: string; partner?: string; pipeline?: string[]; foto?: string; hasilKunjungan?: string; coordinate?: Coordinate; customerCoordinate?: CustomerCoordinate; address?: string; gpsAccuracy?: string; userAgent?: string; description?: string; createdAt: string; }; export interface Coordinate { longitude: number; latitude: number; } export interface CustomerCoordinate { customerLongitude?: number; customerLatitude?: number; } export interface AbsenceVisitDetail { fullName: string; idKaryawan: string; employeeType: EmployeeType; division: string; position: string; agenda: string; customer: string; partner: string; tanggal: string; coordinate: Coordinate; lokasi: string; pipeline: string[]; foto: string; } export type AbsenceOfficeType = 'Absen Kantor In' | 'Absen Kantor Out'; export type AbsenceVisitType = 'Absen Kunjungan Out' | 'Absen Kunjungan In'; export type AgendaType = 'Delivery Order' | 'Operasional' | 'First Meeting' | 'Meeting' | 'Presentasi' | 'Demo' | 'POC' | 'Renewal' | 'ELSA' | 'Troubleshoot'; export type LastAbsenceDetail = { personId: string; fullName: string; position: string; division: string; type: AbsenceOfficeType | AbsenceVisitType; createdAt: string; agenda?: string; customer?: string; partner?: string; sudahAbsenHariIni: boolean; pesanStatus: string; pipeline?: string[]; }; export interface QrSetting { qrIsActive: boolean; } export interface GenerateQR { token: string; } export interface CheckInOutHours { masukKerja: string; pulangKerja: string; masukLembur: string; pulangLembur: string; }