export type AttendanceStatus = "present" | "absent" | "late" | "half_day" | "on_leave"

export const ATTENDANCE_STATUS_LABELS: Record<AttendanceStatus, string> = {
  present:  "Present",
  absent:   "Absent",
  late:     "Late",
  half_day: "Half Day",
  on_leave: "On Leave",
}

export const ATTENDANCE_STATUS_COLORS: Record<AttendanceStatus, string> = {
  present:  "bg-green-100 text-green-700",
  absent:   "bg-red-100 text-red-700",
  late:     "bg-yellow-100 text-yellow-700",
  half_day: "bg-blue-100 text-blue-700",
  on_leave: "bg-purple-100 text-purple-700",
}

export type AttendanceListItem = {
  id: string
  employeeId: string
  employeeName: string
  branchName: string | null
  date: Date
  checkIn: Date | null
  checkOut: Date | null
  status: AttendanceStatus
  note: string | null
  recordedBy: string | null
}

export type AttendanceWithEmployee = {
  id: string
  employeeId: string
  branchId: string | null
  date: Date
  checkIn: Date | null
  checkOut: Date | null
  status: AttendanceStatus
  note: string | null
  recordedBy: string | null
  employee: {
    id: string
    fullName: string
    branch: { id: string; name: string } | null
  }
}

export type AttendanceFilters = {
  branchId?: string
  employeeId?: string
  status?: AttendanceStatus
  dateFrom?: string
  dateTo?: string
}