import PageHeader from "@/components/app/PageHeader"
import PageShell from "@/components/app/PageShell"
import Calendar, { type PublicHoliday } from "@/features/leave/components/Calendar"
import { listPublicHolidays } from "@/features/leave/service"

export const dynamic = "force-dynamic"

export default async function LeaveCalendarPage() {
  const holidays = await listPublicHolidays()

  const serializedHolidays: PublicHoliday[] = holidays.map((h: any) => ({
    id: h.id,
    name: h.name,
    date: h.date.toISOString().split("T")[0],
    endDate: h.endDate ? h.endDate.toISOString().split("T")[0] : undefined,
    type: h.type as PublicHoliday["type"],
    description: h.description ?? undefined,
  }))

  return (
    <PageShell>
      <PageHeader
        title="Leave Calendar"
        description="View and manage public holidays and staff leave."
      />
      <Calendar holidays={serializedHolidays} canManage={true} />
    </PageShell>
  )
}