// Framework-freie Hilfsfunktionen fürs Monatsraster — bewusst ohne
// Server-/Client-spezifische Importe, damit sowohl die API-Route
// (Datenberechnung) als auch die Client-Komponente (Anzeige) sie nutzen können.

export const WEEKDAY_LABELS_DE = ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"];
export const WEEKDAY_LABELS_EN = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
export const MONTH_LABELS_DE = [
  "Januar", "Februar", "März", "April", "Mai", "Juni",
  "Juli", "August", "September", "Oktober", "November", "Dezember",
];
export const MONTH_LABELS_EN = [
  "January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December",
];

export function dayKey(d: Date) {
  return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
}

export function monthGrid(year: number, monthIndex: number): Date[] {
  const firstWeekday = (new Date(year, monthIndex, 1).getDay() + 6) % 7;
  const gridStart = new Date(year, monthIndex, 1 - firstWeekday);
  const lastDayOfMonth = new Date(year, monthIndex + 1, 0);
  const lastWeekday = (lastDayOfMonth.getDay() + 6) % 7;
  const gridEnd = new Date(year, monthIndex + 1, 0 + (6 - lastWeekday) + 1);
  const days: Date[] = [];
  for (let d = new Date(gridStart); d < gridEnd; d.setDate(d.getDate() + 1)) days.push(new Date(d));
  return days;
}
