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 { AppointmentFileCountOrderByAggregateInputObjectSchema as AppointmentFileCountOrderByAggregateInputObjectSchema } from './AppointmentFileCountOrderByAggregateInput.schema';
import { AppointmentFileAvgOrderByAggregateInputObjectSchema as AppointmentFileAvgOrderByAggregateInputObjectSchema } from './AppointmentFileAvgOrderByAggregateInput.schema';
import { AppointmentFileMaxOrderByAggregateInputObjectSchema as AppointmentFileMaxOrderByAggregateInputObjectSchema } from './AppointmentFileMaxOrderByAggregateInput.schema';
import { AppointmentFileMinOrderByAggregateInputObjectSchema as AppointmentFileMinOrderByAggregateInputObjectSchema } from './AppointmentFileMinOrderByAggregateInput.schema';
import { AppointmentFileSumOrderByAggregateInputObjectSchema as AppointmentFileSumOrderByAggregateInputObjectSchema } from './AppointmentFileSumOrderByAggregateInput.schema'

const makeSchema = () => z.object({
  id: SortOrderSchema.optional(),
  appointmentId: SortOrderSchema.optional(),
  filename: SortOrderSchema.optional(),
  mimeType: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  filePath: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  _count: z.lazy(() => AppointmentFileCountOrderByAggregateInputObjectSchema).optional(),
  _avg: z.lazy(() => AppointmentFileAvgOrderByAggregateInputObjectSchema).optional(),
  _max: z.lazy(() => AppointmentFileMaxOrderByAggregateInputObjectSchema).optional(),
  _min: z.lazy(() => AppointmentFileMinOrderByAggregateInputObjectSchema).optional(),
  _sum: z.lazy(() => AppointmentFileSumOrderByAggregateInputObjectSchema).optional()
}).strict();
export const AppointmentFileOrderByWithAggregationInputObjectSchema: z.ZodType<Prisma.AppointmentFileOrderByWithAggregationInput> = makeSchema() as unknown as z.ZodType<Prisma.AppointmentFileOrderByWithAggregationInput>;
export const AppointmentFileOrderByWithAggregationInputObjectZodSchema = makeSchema();
