import { z } from "zod" import type { Location } from "@/types/trpc/routers/hotel/locations" export const guestRoomSchema = z.object({ adults: z.number().default(1), children: z.array( z.object({ age: z.number().nonnegative(), bed: z.number(), }) ), }) export const guestRoomsSchema = z.array(guestRoomSchema) export const bookingWidgetSchema = z.object({ bookingCode: z.string(), // Update this as required when working with booking codes component date: z.object({ // Update this as required once started working with Date picker in Nights component 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" } ), redemption: z.boolean().default(false), rooms: guestRoomsSchema, search: z.string({ coerce: true }).min(1, "Required"), voucher: z.boolean().default(false), })