import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { OfficeContactIncludeObjectSchema as OfficeContactIncludeObjectSchema } from './objects/OfficeContactInclude.schema';
import { OfficeContactOrderByWithRelationInputObjectSchema as OfficeContactOrderByWithRelationInputObjectSchema } from './objects/OfficeContactOrderByWithRelationInput.schema';
import { OfficeContactWhereInputObjectSchema as OfficeContactWhereInputObjectSchema } from './objects/OfficeContactWhereInput.schema';
import { OfficeContactWhereUniqueInputObjectSchema as OfficeContactWhereUniqueInputObjectSchema } from './objects/OfficeContactWhereUniqueInput.schema';
import { OfficeContactScalarFieldEnumSchema } from './enums/OfficeContactScalarFieldEnum.schema';

// Select schema needs to be in file to prevent circular imports
//------------------------------------------------------

export const OfficeContactFindManySelectSchema: z.ZodType<Prisma.OfficeContactSelect> = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    officeName: z.boolean().optional(),
    receptionistName: z.boolean().optional(),
    dentistName: z.boolean().optional(),
    phoneNumber: z.boolean().optional(),
    email: z.boolean().optional(),
    fax: z.boolean().optional(),
    streetAddress: z.boolean().optional(),
    city: z.boolean().optional(),
    state: z.boolean().optional(),
    zipCode: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict() as unknown as z.ZodType<Prisma.OfficeContactSelect>;

export const OfficeContactFindManySelectZodSchema = z.object({
    id: z.boolean().optional(),
    userId: z.boolean().optional(),
    officeName: z.boolean().optional(),
    receptionistName: z.boolean().optional(),
    dentistName: z.boolean().optional(),
    phoneNumber: z.boolean().optional(),
    email: z.boolean().optional(),
    fax: z.boolean().optional(),
    streetAddress: z.boolean().optional(),
    city: z.boolean().optional(),
    state: z.boolean().optional(),
    zipCode: z.boolean().optional(),
    user: z.boolean().optional()
  }).strict();

export const OfficeContactFindManySchema: z.ZodType<Prisma.OfficeContactFindManyArgs> = z.object({ select: OfficeContactFindManySelectSchema.optional(), include: z.lazy(() => OfficeContactIncludeObjectSchema.optional()), orderBy: z.union([OfficeContactOrderByWithRelationInputObjectSchema, OfficeContactOrderByWithRelationInputObjectSchema.array()]).optional(), where: OfficeContactWhereInputObjectSchema.optional(), cursor: OfficeContactWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([OfficeContactScalarFieldEnumSchema, OfficeContactScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.OfficeContactFindManyArgs>;

export const OfficeContactFindManyZodSchema = z.object({ select: OfficeContactFindManySelectSchema.optional(), include: z.lazy(() => OfficeContactIncludeObjectSchema.optional()), orderBy: z.union([OfficeContactOrderByWithRelationInputObjectSchema, OfficeContactOrderByWithRelationInputObjectSchema.array()]).optional(), where: OfficeContactWhereInputObjectSchema.optional(), cursor: OfficeContactWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([OfficeContactScalarFieldEnumSchema, OfficeContactScalarFieldEnumSchema.array()]).optional() }).strict();