import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { PatientArgsObjectSchema as PatientArgsObjectSchema } from './PatientArgs.schema';
import { UserArgsObjectSchema as UserArgsObjectSchema } from './UserArgs.schema'

const makeSchema = () => z.object({
  id: z.boolean().optional(),
  patientId: z.boolean().optional(),
  userId: z.boolean().optional(),
  channel: z.boolean().optional(),
  direction: z.boolean().optional(),
  status: z.boolean().optional(),
  body: z.boolean().optional(),
  callDuration: z.boolean().optional(),
  twilioSid: z.boolean().optional(),
  createdAt: z.boolean().optional(),
  patient: z.union([z.boolean(), z.lazy(() => PatientArgsObjectSchema)]).optional(),
  user: z.union([z.boolean(), z.lazy(() => UserArgsObjectSchema)]).optional()
}).strict();
export const CommunicationSelectObjectSchema: z.ZodType<Prisma.CommunicationSelect> = makeSchema() as unknown as z.ZodType<Prisma.CommunicationSelect>;
export const CommunicationSelectObjectZodSchema = makeSchema();
