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 { TwilioSettingsCountOrderByAggregateInputObjectSchema as TwilioSettingsCountOrderByAggregateInputObjectSchema } from './TwilioSettingsCountOrderByAggregateInput.schema';
import { TwilioSettingsAvgOrderByAggregateInputObjectSchema as TwilioSettingsAvgOrderByAggregateInputObjectSchema } from './TwilioSettingsAvgOrderByAggregateInput.schema';
import { TwilioSettingsMaxOrderByAggregateInputObjectSchema as TwilioSettingsMaxOrderByAggregateInputObjectSchema } from './TwilioSettingsMaxOrderByAggregateInput.schema';
import { TwilioSettingsMinOrderByAggregateInputObjectSchema as TwilioSettingsMinOrderByAggregateInputObjectSchema } from './TwilioSettingsMinOrderByAggregateInput.schema';
import { TwilioSettingsSumOrderByAggregateInputObjectSchema as TwilioSettingsSumOrderByAggregateInputObjectSchema } from './TwilioSettingsSumOrderByAggregateInput.schema'

const makeSchema = () => z.object({
  id: SortOrderSchema.optional(),
  userId: SortOrderSchema.optional(),
  accountSid: SortOrderSchema.optional(),
  authToken: SortOrderSchema.optional(),
  phoneNumber: SortOrderSchema.optional(),
  greetingMessage: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  templates: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  _count: z.lazy(() => TwilioSettingsCountOrderByAggregateInputObjectSchema).optional(),
  _avg: z.lazy(() => TwilioSettingsAvgOrderByAggregateInputObjectSchema).optional(),
  _max: z.lazy(() => TwilioSettingsMaxOrderByAggregateInputObjectSchema).optional(),
  _min: z.lazy(() => TwilioSettingsMinOrderByAggregateInputObjectSchema).optional(),
  _sum: z.lazy(() => TwilioSettingsSumOrderByAggregateInputObjectSchema).optional()
}).strict();
export const TwilioSettingsOrderByWithAggregationInputObjectSchema: z.ZodType<Prisma.TwilioSettingsOrderByWithAggregationInput> = makeSchema() as unknown as z.ZodType<Prisma.TwilioSettingsOrderByWithAggregationInput>;
export const TwilioSettingsOrderByWithAggregationInputObjectZodSchema = makeSchema();
