import { z } from "zod" import type { Location } from "@/types/trpc/routers/hotel/locations" export const bookingWidgetSchema = z.object({ search: z.string({ coerce: true }).min(1, "Required"), date: z.object({ from: z.string(), to: z.string(), }), location: z.string().refine( (value) => { if (value) { const parsedValue: Location = JSON.parse(decodeURIComponent(value)) switch (parsedValue?.type) { case "cities": case "hotels": return true default: return false } } }, { message: "Required" } ), bookingCode: z.string(), // Update this as required when working with booking codes component redemption: z.boolean().default(false), voucher: z.boolean().default(false), rooms: z.array( // This will be updated when working in guests component z.object({ adults: z.number().default(1), childs: z.array( z.object({ age: z.number(), bed: z.number(), }) ), }) ), })