CreateReservationRequestSchema: ZodObject<
    {
        restaurantId: 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<
            Omit<
                {
                    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>;
                },
                "tableNumber",
            >,
            "strip",
            ZodTypeAny,
            {
                date: string;
                time: string;
                duration?: number;
                partySize: number;
                source: string;
                specialRequests?: string;
                status?: | "Pending"
                | "Confirmed"
                | "Occupied"
                | "Cancelled"
                | "No-Show"
                | "Dine Completed";
            },
            {
                date: string;
                time: string;
                duration?: number;
                partySize: number;
                source?: string;
                specialRequests?: string;
                status?: | "Pending"
                | "Confirmed"
                | "Occupied"
                | "Cancelled"
                | "No-Show"
                | "Dine Completed";
            },
        >;
        payment: ZodOptional<
            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;
                    },
                >,
            >,
        >;
    },
    "strip",
    ZodTypeAny,
    {
        restaurantId: 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";
        };
        payment?: | null
        | {
            isPaid?: number;
            paymentMethod?: string;
            transactionId?: string;
            amount?: number;
        };
    },
    {
        restaurantId: 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";
        };
        payment?: | null
        | {
            isPaid?: number;
            paymentMethod?: string;
            transactionId?: string;
            amount?: number;
        };
    },
> = ...

Schema for creating a new reservation request Omits table number as it's typically assigned by the restaurant

const createReservation = {
restaurantId: "rest_1234567890",
customer: {
name: "Jane Smith",
phone: "+1987654321",
email: "jane.smith@example.com"
},
reservationDetails: {
date: "2024-01-20",
time: "20:00",
duration: 120,
partySize: 6,
source: "OrderQ",
specialRequests: "Birthday celebration"
},
payment: {
isPaid: 0,
paymentMethod: "cash",
amount: 0
}
};