import * as z from "zod"; import * as imports from "../zod-utils"; import { BookingStatus } from "@prisma/client"; import { CompleteUser, UserModel, CompleteBookingReference, BookingReferenceModel, CompleteEventType, EventTypeModel, CompleteAttendee, AttendeeModel, CompleteDailyEventReference, DailyEventReferenceModel, CompletePayment, PaymentModel, CompleteDestinationCalendar, DestinationCalendarModel, } from "./index"; export const _BookingModel = z.object({ id: z.number().int(), uid: z.string(), userId: z.number().int().nullish(), eventTypeId: z.number().int().nullish(), title: z.string(), description: z.string().nullish(), startTime: z.date(), endTime: z.date(), location: z.string().nullish(), createdAt: z.date(), updatedAt: z.date().nullish(), confirmed: z.boolean(), rejected: z.boolean(), status: z.nativeEnum(BookingStatus), paid: z.boolean(), cancellationReason: z.string().nullish(), rejectionReason: z.string().nullish(), }); export interface CompleteBooking extends z.infer { user?: CompleteUser | null; references: CompleteBookingReference[]; eventType?: CompleteEventType | null; attendees: CompleteAttendee[]; dailyRef?: CompleteDailyEventReference | null; payment: CompletePayment[]; destinationCalendar?: CompleteDestinationCalendar | null; } /** * BookingModel contains all relations on your model in addition to the scalars * * NOTE: Lazy required in case of potential circular dependencies within schema */ export const BookingModel: z.ZodSchema = z.lazy(() => _BookingModel.extend({ user: UserModel.nullish(), references: BookingReferenceModel.array(), eventType: EventTypeModel.nullish(), attendees: AttendeeModel.array(), dailyRef: DailyEventReferenceModel.nullish(), payment: PaymentModel.array(), destinationCalendar: DestinationCalendarModel.nullish(), }) );