import { z } from "zod" import { dt } from "@/lib/dt" import { nullableStringValidator } from "@/utils/zod/stringValidator" import { AlertTypeEnum } from "@/types/enums/alert" const specialAlertSchema = z.object({ description: nullableStringValidator, displayInBookingFlow: z.boolean().default(false), endDate: nullableStringValidator, startDate: nullableStringValidator, title: nullableStringValidator, type: nullableStringValidator, }) export const specialAlertsSchema = z .array(specialAlertSchema) .nullish() .transform((arr) => (arr ? arr.filter(Boolean) : [])) .transform((data) => { const now = dt().utc().format("YYYY-MM-DD") const filteredAlerts = data.filter((alert) => { const shouldShowNow = alert.startDate && alert.endDate ? alert.startDate <= now && alert.endDate >= now : true const hasText = alert.description || alert.title return shouldShowNow && hasText }) return filteredAlerts.map((alert, idx) => ({ heading: alert.title || null, id: `alert-${alert.type}-${idx}`, text: alert.description || null, type: AlertTypeEnum.Info, displayInBookingFlow: alert.displayInBookingFlow, })) })