import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { CommunicationCreateWithoutUserInputObjectSchema as CommunicationCreateWithoutUserInputObjectSchema } from './CommunicationCreateWithoutUserInput.schema';
import { CommunicationUncheckedCreateWithoutUserInputObjectSchema as CommunicationUncheckedCreateWithoutUserInputObjectSchema } from './CommunicationUncheckedCreateWithoutUserInput.schema';
import { CommunicationCreateOrConnectWithoutUserInputObjectSchema as CommunicationCreateOrConnectWithoutUserInputObjectSchema } from './CommunicationCreateOrConnectWithoutUserInput.schema';
import { CommunicationUpsertWithWhereUniqueWithoutUserInputObjectSchema as CommunicationUpsertWithWhereUniqueWithoutUserInputObjectSchema } from './CommunicationUpsertWithWhereUniqueWithoutUserInput.schema';
import { CommunicationCreateManyUserInputEnvelopeObjectSchema as CommunicationCreateManyUserInputEnvelopeObjectSchema } from './CommunicationCreateManyUserInputEnvelope.schema';
import { CommunicationWhereUniqueInputObjectSchema as CommunicationWhereUniqueInputObjectSchema } from './CommunicationWhereUniqueInput.schema';
import { CommunicationUpdateWithWhereUniqueWithoutUserInputObjectSchema as CommunicationUpdateWithWhereUniqueWithoutUserInputObjectSchema } from './CommunicationUpdateWithWhereUniqueWithoutUserInput.schema';
import { CommunicationUpdateManyWithWhereWithoutUserInputObjectSchema as CommunicationUpdateManyWithWhereWithoutUserInputObjectSchema } from './CommunicationUpdateManyWithWhereWithoutUserInput.schema';
import { CommunicationScalarWhereInputObjectSchema as CommunicationScalarWhereInputObjectSchema } from './CommunicationScalarWhereInput.schema'

const makeSchema = () => z.object({
  create: z.union([z.lazy(() => CommunicationCreateWithoutUserInputObjectSchema), z.lazy(() => CommunicationCreateWithoutUserInputObjectSchema).array(), z.lazy(() => CommunicationUncheckedCreateWithoutUserInputObjectSchema), z.lazy(() => CommunicationUncheckedCreateWithoutUserInputObjectSchema).array()]).optional(),
  connectOrCreate: z.union([z.lazy(() => CommunicationCreateOrConnectWithoutUserInputObjectSchema), z.lazy(() => CommunicationCreateOrConnectWithoutUserInputObjectSchema).array()]).optional(),
  upsert: z.union([z.lazy(() => CommunicationUpsertWithWhereUniqueWithoutUserInputObjectSchema), z.lazy(() => CommunicationUpsertWithWhereUniqueWithoutUserInputObjectSchema).array()]).optional(),
  createMany: z.lazy(() => CommunicationCreateManyUserInputEnvelopeObjectSchema).optional(),
  set: z.union([z.lazy(() => CommunicationWhereUniqueInputObjectSchema), z.lazy(() => CommunicationWhereUniqueInputObjectSchema).array()]).optional(),
  disconnect: z.union([z.lazy(() => CommunicationWhereUniqueInputObjectSchema), z.lazy(() => CommunicationWhereUniqueInputObjectSchema).array()]).optional(),
  delete: z.union([z.lazy(() => CommunicationWhereUniqueInputObjectSchema), z.lazy(() => CommunicationWhereUniqueInputObjectSchema).array()]).optional(),
  connect: z.union([z.lazy(() => CommunicationWhereUniqueInputObjectSchema), z.lazy(() => CommunicationWhereUniqueInputObjectSchema).array()]).optional(),
  update: z.union([z.lazy(() => CommunicationUpdateWithWhereUniqueWithoutUserInputObjectSchema), z.lazy(() => CommunicationUpdateWithWhereUniqueWithoutUserInputObjectSchema).array()]).optional(),
  updateMany: z.union([z.lazy(() => CommunicationUpdateManyWithWhereWithoutUserInputObjectSchema), z.lazy(() => CommunicationUpdateManyWithWhereWithoutUserInputObjectSchema).array()]).optional(),
  deleteMany: z.union([z.lazy(() => CommunicationScalarWhereInputObjectSchema), z.lazy(() => CommunicationScalarWhereInputObjectSchema).array()]).optional()
}).strict();
export const CommunicationUncheckedUpdateManyWithoutUserNestedInputObjectSchema: z.ZodType<Prisma.CommunicationUncheckedUpdateManyWithoutUserNestedInput> = makeSchema() as unknown as z.ZodType<Prisma.CommunicationUncheckedUpdateManyWithoutUserNestedInput>;
export const CommunicationUncheckedUpdateManyWithoutUserNestedInputObjectZodSchema = makeSchema();
