// Getrennt von models/VacationRequest.ts, damit Client-Komponenten diese
// Konstanten importieren können, ohne Mongoose in den Browser-Bundle zu
// ziehen (gleiches Muster wie lib/absenceConstants.ts / lib/employment.ts).
export const VACATION_REQUEST_STATUSES = ["requested", "approved", "rejected", "cancelled"] as const;
export type VacationRequestStatus = (typeof VACATION_REQUEST_STATUSES)[number];

export const VACATION_REQUEST_STATUS_LABELS: Record<VacationRequestStatus, string> = {
  requested: "Beantragt",
  approved: "Genehmigt",
  rejected: "Abgelehnt",
  cancelled: "Zurückgezogen",
};

// Zählt nur Werktage (Mo-Fr) zwischen start und end (inklusive) - keine
// Feiertage berücksichtigt (kein Feiertagskalender im System), das ist eine
// bewusste Vereinfachung, siehe Projekt-Notiz. start/end ohne Uhrzeit-Anteil
// übergeben (auf Tagesbeginn normalisiert).
export function countVacationWorkDays(start: Date, end: Date): number {
  let count = 0;
  const cursor = new Date(start.getFullYear(), start.getMonth(), start.getDate());
  const last = new Date(end.getFullYear(), end.getMonth(), end.getDate());
  while (cursor.getTime() <= last.getTime()) {
    const day = cursor.getDay();
    if (day !== 0 && day !== 6) count++;
    cursor.setDate(cursor.getDate() + 1);
  }
  return count;
}
