import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { SortOrderSchema } from '../enums/SortOrder.schema';
import { SortOrderInputObjectSchema as SortOrderInputObjectSchema } from './SortOrderInput.schema';
import { OfficeContactCountOrderByAggregateInputObjectSchema as OfficeContactCountOrderByAggregateInputObjectSchema } from './OfficeContactCountOrderByAggregateInput.schema';
import { OfficeContactAvgOrderByAggregateInputObjectSchema as OfficeContactAvgOrderByAggregateInputObjectSchema } from './OfficeContactAvgOrderByAggregateInput.schema';
import { OfficeContactMaxOrderByAggregateInputObjectSchema as OfficeContactMaxOrderByAggregateInputObjectSchema } from './OfficeContactMaxOrderByAggregateInput.schema';
import { OfficeContactMinOrderByAggregateInputObjectSchema as OfficeContactMinOrderByAggregateInputObjectSchema } from './OfficeContactMinOrderByAggregateInput.schema';
import { OfficeContactSumOrderByAggregateInputObjectSchema as OfficeContactSumOrderByAggregateInputObjectSchema } from './OfficeContactSumOrderByAggregateInput.schema'

const makeSchema = () => z.object({
  id: SortOrderSchema.optional(),
  userId: SortOrderSchema.optional(),
  officeName: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  receptionistName: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  dentistName: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  phoneNumber: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  email: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  fax: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  streetAddress: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  city: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  state: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  zipCode: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  _count: z.lazy(() => OfficeContactCountOrderByAggregateInputObjectSchema).optional(),
  _avg: z.lazy(() => OfficeContactAvgOrderByAggregateInputObjectSchema).optional(),
  _max: z.lazy(() => OfficeContactMaxOrderByAggregateInputObjectSchema).optional(),
  _min: z.lazy(() => OfficeContactMinOrderByAggregateInputObjectSchema).optional(),
  _sum: z.lazy(() => OfficeContactSumOrderByAggregateInputObjectSchema).optional()
}).strict();
export const OfficeContactOrderByWithAggregationInputObjectSchema: z.ZodType<Prisma.OfficeContactOrderByWithAggregationInput> = makeSchema() as unknown as z.ZodType<Prisma.OfficeContactOrderByWithAggregationInput>;
export const OfficeContactOrderByWithAggregationInputObjectZodSchema = makeSchema();
