import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { TwilioSettingsWhereInputObjectSchema as TwilioSettingsWhereInputObjectSchema } from './objects/TwilioSettingsWhereInput.schema';
import { TwilioSettingsOrderByWithAggregationInputObjectSchema as TwilioSettingsOrderByWithAggregationInputObjectSchema } from './objects/TwilioSettingsOrderByWithAggregationInput.schema';
import { TwilioSettingsScalarWhereWithAggregatesInputObjectSchema as TwilioSettingsScalarWhereWithAggregatesInputObjectSchema } from './objects/TwilioSettingsScalarWhereWithAggregatesInput.schema';
import { TwilioSettingsScalarFieldEnumSchema } from './enums/TwilioSettingsScalarFieldEnum.schema';
import { TwilioSettingsCountAggregateInputObjectSchema as TwilioSettingsCountAggregateInputObjectSchema } from './objects/TwilioSettingsCountAggregateInput.schema';
import { TwilioSettingsMinAggregateInputObjectSchema as TwilioSettingsMinAggregateInputObjectSchema } from './objects/TwilioSettingsMinAggregateInput.schema';
import { TwilioSettingsMaxAggregateInputObjectSchema as TwilioSettingsMaxAggregateInputObjectSchema } from './objects/TwilioSettingsMaxAggregateInput.schema';
import { TwilioSettingsAvgAggregateInputObjectSchema as TwilioSettingsAvgAggregateInputObjectSchema } from './objects/TwilioSettingsAvgAggregateInput.schema';
import { TwilioSettingsSumAggregateInputObjectSchema as TwilioSettingsSumAggregateInputObjectSchema } from './objects/TwilioSettingsSumAggregateInput.schema';

export const TwilioSettingsGroupBySchema: z.ZodType<Prisma.TwilioSettingsGroupByArgs> = z.object({ where: TwilioSettingsWhereInputObjectSchema.optional(), orderBy: z.union([TwilioSettingsOrderByWithAggregationInputObjectSchema, TwilioSettingsOrderByWithAggregationInputObjectSchema.array()]).optional(), having: TwilioSettingsScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(TwilioSettingsScalarFieldEnumSchema), _count: z.union([ z.literal(true), TwilioSettingsCountAggregateInputObjectSchema ]).optional(), _min: TwilioSettingsMinAggregateInputObjectSchema.optional(), _max: TwilioSettingsMaxAggregateInputObjectSchema.optional(), _avg: TwilioSettingsAvgAggregateInputObjectSchema.optional(), _sum: TwilioSettingsSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.TwilioSettingsGroupByArgs>;

export const TwilioSettingsGroupByZodSchema = z.object({ where: TwilioSettingsWhereInputObjectSchema.optional(), orderBy: z.union([TwilioSettingsOrderByWithAggregationInputObjectSchema, TwilioSettingsOrderByWithAggregationInputObjectSchema.array()]).optional(), having: TwilioSettingsScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(TwilioSettingsScalarFieldEnumSchema), _count: z.union([ z.literal(true), TwilioSettingsCountAggregateInputObjectSchema ]).optional(), _min: TwilioSettingsMinAggregateInputObjectSchema.optional(), _max: TwilioSettingsMaxAggregateInputObjectSchema.optional(), _avg: TwilioSettingsAvgAggregateInputObjectSchema.optional(), _sum: TwilioSettingsSumAggregateInputObjectSchema.optional() }).strict();