import { auth } from '@/lib/auth'; import { prisma } from '@/lib/db'; import { SYNC_KEY } from '@/lib/holidays/sync'; import { toCivilDate } from '@/lib/schedule/civil'; import { loadSettings } from '@/lib/schedule/context'; import { formatDateFr } from '@/lib/schedule/format'; import HolidayManager, { type HolidayRow } from './HolidayManager'; export const metadata = { title: 'Jours fériés — ITA ITO' }; export default async function HolidaysPage() { const [session, settings] = await Promise.all([auth(), loadSettings()]); const today = toCivilDate(new Date(), settings.timezone); const [rows, state] = await Promise.all([ prisma.publicHoliday.findMany({ where: { subdivisionCode: settings.subdivisionCode, date: { gte: new Date(`${today}T00:00:00.000Z`) }, }, orderBy: { date: 'asc' }, }), prisma.syncState.findUnique({ where: { key: SYNC_KEY } }), ]); const holidays: HolidayRow[] = rows.map((row) => { const date = row.date.toISOString().slice(0, 10); return { id: row.id, date, label: formatDateFr(date), nameFr: row.nameFr, nameEn: row.nameEn, nationwide: row.nationwide, isAutoClosed: row.isAutoClosed, }; }); return (

Jours fériés

Calendrier glissant sur douze mois, synchronisé chaque nuit depuis openholidaysapi.org. Tous les fériés ne ferment pas la boutique : la case décide, pas l’API.

); }