import { auth } from '@/lib/auth'; import { prisma } from '@/lib/db'; import { toCivilDate } from '@/lib/schedule/civil'; import { loadSettings } from '@/lib/schedule/context'; import { periodsOverlap, upcomingPeriods } from '@/lib/schedule/vacations'; import VacationManager, { type VacationRow } from './VacationManager'; import YearCalendar from './YearCalendar'; export const metadata = { title: 'Vacances — ITA ITO' }; export default async function VacationsPage() { const [session, settings] = await Promise.all([auth(), loadSettings()]); const today = toCivilDate(new Date(), settings.timezone); const rows = await prisma.vacationPeriod.findMany({ orderBy: { startDate: 'asc' } }); const periods: VacationRow[] = rows.map((row) => { const startDate = row.startDate.toISOString().slice(0, 10); const endDate = row.endDate.toISOString().slice(0, 10); return { id: row.id, startDate, endDate, labelFr: row.labelFr, labelEn: row.labelEn, isCurrent: periodsOverlap({ startDate, endDate }, { startDate: today, endDate: today }), }; }); return (

Vacances

Les fermetures longues. Une exception ponctuelle posée sur un de ces jours continue de primer : rien n’est écrasé.

Vue sur douze mois

); }