import { z } from "zod"; const idFilter = () => z.array(z.string().max(64)).max(500); const chapterFilter = () => z.array(z.string().max(100)).max(100); const countryFilter = () => z.array(z.string().max(8)).max(300); const dateStr = () => z.string().max(32); export const TimelineWindowFiltersSchema = z.object({ startDate: z.coerce.date(), endDate: z.coerce.date(), resourceIds: idFilter().optional(), projectIds: idFilter().optional(), clientIds: idFilter().optional(), chapters: chapterFilter().optional(), eids: idFilter().optional(), countryCodes: countryFilter().optional(), }); export const TimelineDetailFiltersSchema = z.object({ startDate: dateStr().optional(), endDate: dateStr().optional(), durationDays: z.number().int().min(1).max(366).optional(), resourceIds: idFilter().optional(), projectIds: idFilter().optional(), clientIds: idFilter().optional(), chapters: chapterFilter().optional(), eids: idFilter().optional(), countryCodes: countryFilter().optional(), }); export const TimelineProjectContextDetailSchema = z.object({ projectId: z.string().max(64), startDate: dateStr().optional(), endDate: dateStr().optional(), durationDays: z.number().int().min(1).max(366).optional(), }); export const TimelineProjectIdSchema = z.object({ projectId: z.string().max(64), });