ReservationSchema: ZodObject<
    {
        reservationId: ZodString;
        id: ZodString;
        customer: ZodObject<
            { name: ZodString; phone: ZodString; email: ZodString },
            "strip",
            ZodTypeAny,
            { name: string; phone: string; email: string },
            { name: string; phone: string; email: string },
        >;
        reservationDetails: ZodObject<
            {
                date: ZodString;
                time: ZodString;
                duration: ZodOptional<ZodNumber>;
                partySize: ZodNumber;
                source: ZodDefault<ZodOptional<ZodString>>;
                specialRequests: ZodOptional<ZodString>;
                status: ZodOptional<
                    ZodEnum<
                        [
                            "Pending",
                            "Confirmed",
                            "Occupied",
                            "Cancelled",
                            "No-Show",
                            "Dine Completed",
                        ],
                    >,
                >;
                tableNumber: ZodOptional<ZodString>;
            },
            "strip",
            ZodTypeAny,
            {
                date: string;
                time: string;
                duration?: number;
                partySize: number;
                source: string;
                specialRequests?: string;
                status?: | "Pending"
                | "Confirmed"
                | "Occupied"
                | "Cancelled"
                | "No-Show"
                | "Dine Completed";
                tableNumber?: string;
            },
            {
                date: string;
                time: string;
                duration?: number;
                partySize: number;
                source?: string;
                specialRequests?: string;
                status?: | "Pending"
                | "Confirmed"
                | "Occupied"
                | "Cancelled"
                | "No-Show"
                | "Dine Completed";
                tableNumber?: string;
            },
        >;
        payment: ZodNullable<
            ZodObject<
                {
                    isPaid: ZodOptional<ZodNumber>;
                    paymentMethod: ZodOptional<ZodString>;
                    transactionId: ZodOptional<ZodString>;
                    amount: ZodOptional<ZodNumber>;
                },
                "strip",
                ZodTypeAny,
                {
                    isPaid?: number;
                    paymentMethod?: string;
                    transactionId?: string;
                    amount?: number;
                },
                {
                    isPaid?: number;
                    paymentMethod?: string;
                    transactionId?: string;
                    amount?: number;
                },
            >,
        >;
        metadata: ZodObject<
            { createdAt: ZodString; updatedAt: ZodString },
            "strip",
            ZodTypeAny,
            { createdAt: string; updatedAt: string },
            { createdAt: string; updatedAt: string },
        >;
    },
    "strip",
    ZodTypeAny,
    {
        reservationId: string;
        id: string;
        customer: { name: string; phone: string; email: string };
        reservationDetails: {
            date: string;
            time: string;
            duration?: number;
            partySize: number;
            source: string;
            specialRequests?: string;
            status?:
                | "Pending"
                | "Confirmed"
                | "Occupied"
                | "Cancelled"
                | "No-Show"
                | "Dine Completed";
            tableNumber?: string;
        };
        payment: | null
        | {
            isPaid?: number;
            paymentMethod?: string;
            transactionId?: string;
            amount?: number;
        };
        metadata: { createdAt: string; updatedAt: string };
    },
    {
        reservationId: string;
        id: string;
        customer: { name: string; phone: string; email: string };
        reservationDetails: {
            date: string;
            time: string;
            duration?: number;
            partySize: number;
            source?: string;
            specialRequests?: string;
            status?:
                | "Pending"
                | "Confirmed"
                | "Occupied"
                | "Cancelled"
                | "No-Show"
                | "Dine Completed";
            tableNumber?: string;
        };
        payment: | null
        | {
            isPaid?: number;
            paymentMethod?: string;
            transactionId?: string;
            amount?: number;
        };
        metadata: { createdAt: string; updatedAt: string };
    },
> = ...

Complete reservation schema Contains all information about a reservation including customer and payment details

const reservation = {
reservationId: "res_1234567890",
id: "internal_123",
customer: {
name: "John Doe",
phone: "+1234567890",
email: "john.doe@example.com"
},
reservationDetails: {
date: "2024-01-15",
time: "19:00",
duration: 90,
partySize: 4,
source: "OrderQ",
specialRequests: "Window seat preferred",
status: "Confirmed",
tableNumber: "12"
},
payment: {
isPaid: 1,
paymentMethod: "credit_card",
transactionId: "txn_1234567890",
amount: 25.00
},
metadata: {
createdAt: "2024-01-10T10:30:00Z",
updatedAt: "2024-01-15T18:45:00Z"
}
};