import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { CommunicationSelectObjectSchema as CommunicationSelectObjectSchema } from './objects/CommunicationSelect.schema';
import { CommunicationIncludeObjectSchema as CommunicationIncludeObjectSchema } from './objects/CommunicationInclude.schema';
import { CommunicationWhereUniqueInputObjectSchema as CommunicationWhereUniqueInputObjectSchema } from './objects/CommunicationWhereUniqueInput.schema';
import { CommunicationCreateInputObjectSchema as CommunicationCreateInputObjectSchema } from './objects/CommunicationCreateInput.schema';
import { CommunicationUncheckedCreateInputObjectSchema as CommunicationUncheckedCreateInputObjectSchema } from './objects/CommunicationUncheckedCreateInput.schema';
import { CommunicationUpdateInputObjectSchema as CommunicationUpdateInputObjectSchema } from './objects/CommunicationUpdateInput.schema';
import { CommunicationUncheckedUpdateInputObjectSchema as CommunicationUncheckedUpdateInputObjectSchema } from './objects/CommunicationUncheckedUpdateInput.schema';

export const CommunicationUpsertOneSchema: z.ZodType<Prisma.CommunicationUpsertArgs> = z.object({ select: CommunicationSelectObjectSchema.optional(), include: CommunicationIncludeObjectSchema.optional(), where: CommunicationWhereUniqueInputObjectSchema, create: z.union([ CommunicationCreateInputObjectSchema, CommunicationUncheckedCreateInputObjectSchema ]), update: z.union([ CommunicationUpdateInputObjectSchema, CommunicationUncheckedUpdateInputObjectSchema ]) }).strict() as unknown as z.ZodType<Prisma.CommunicationUpsertArgs>;

export const CommunicationUpsertOneZodSchema = z.object({ select: CommunicationSelectObjectSchema.optional(), include: CommunicationIncludeObjectSchema.optional(), where: CommunicationWhereUniqueInputObjectSchema, create: z.union([ CommunicationCreateInputObjectSchema, CommunicationUncheckedCreateInputObjectSchema ]), update: z.union([ CommunicationUpdateInputObjectSchema, CommunicationUncheckedUpdateInputObjectSchema ]) }).strict();