import { z } from "zod" import { bookingReservationStatusSchema } from "../schema/bookingReservationStatusSchema" export type CancelBooking = z.infer export const cancelBookingSchema = z .object({ data: z.object({ attributes: z.object({ reservationStatus: bookingReservationStatusSchema, paymentUrl: z.string().nullable().optional(), paymentMethod: z.string().nullable().optional(), rooms: z .array( z.object({ confirmationNumber: z.string(), cancellationNumber: z.string().nullable(), priceChangedMetadata: z .object({ roomPrice: z.number(), totalPrice: z.number(), }) .nullable() .optional(), }) ) .default([]), errors: z .array( z.object({ confirmationNumber: z.string().nullable().optional(), errorCode: z.string(), description: z.string().nullable().optional(), meta: z .record(z.string(), z.union([z.string(), z.number()])) .nullable() .optional(), }) ) .default([]), }), type: z.string(), id: z.string(), }), }) .transform((apiResponse) => { return { id: apiResponse.data.id, type: apiResponse.data.type, reservationStatus: apiResponse.data.attributes.reservationStatus, paymentUrl: apiResponse.data.attributes.paymentUrl, paymentMethod: apiResponse.data.attributes.paymentMethod, rooms: apiResponse.data.attributes.rooms, errors: apiResponse.data.attributes.errors, } })