import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { SeleniumSettingsWhereInputObjectSchema as SeleniumSettingsWhereInputObjectSchema } from './objects/SeleniumSettingsWhereInput.schema';
import { SeleniumSettingsOrderByWithAggregationInputObjectSchema as SeleniumSettingsOrderByWithAggregationInputObjectSchema } from './objects/SeleniumSettingsOrderByWithAggregationInput.schema';
import { SeleniumSettingsScalarWhereWithAggregatesInputObjectSchema as SeleniumSettingsScalarWhereWithAggregatesInputObjectSchema } from './objects/SeleniumSettingsScalarWhereWithAggregatesInput.schema';
import { SeleniumSettingsScalarFieldEnumSchema } from './enums/SeleniumSettingsScalarFieldEnum.schema';
import { SeleniumSettingsCountAggregateInputObjectSchema as SeleniumSettingsCountAggregateInputObjectSchema } from './objects/SeleniumSettingsCountAggregateInput.schema';
import { SeleniumSettingsMinAggregateInputObjectSchema as SeleniumSettingsMinAggregateInputObjectSchema } from './objects/SeleniumSettingsMinAggregateInput.schema';
import { SeleniumSettingsMaxAggregateInputObjectSchema as SeleniumSettingsMaxAggregateInputObjectSchema } from './objects/SeleniumSettingsMaxAggregateInput.schema';
import { SeleniumSettingsAvgAggregateInputObjectSchema as SeleniumSettingsAvgAggregateInputObjectSchema } from './objects/SeleniumSettingsAvgAggregateInput.schema';
import { SeleniumSettingsSumAggregateInputObjectSchema as SeleniumSettingsSumAggregateInputObjectSchema } from './objects/SeleniumSettingsSumAggregateInput.schema';

export const SeleniumSettingsGroupBySchema: z.ZodType<Prisma.SeleniumSettingsGroupByArgs> = z.object({ where: SeleniumSettingsWhereInputObjectSchema.optional(), orderBy: z.union([SeleniumSettingsOrderByWithAggregationInputObjectSchema, SeleniumSettingsOrderByWithAggregationInputObjectSchema.array()]).optional(), having: SeleniumSettingsScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(SeleniumSettingsScalarFieldEnumSchema), _count: z.union([ z.literal(true), SeleniumSettingsCountAggregateInputObjectSchema ]).optional(), _min: SeleniumSettingsMinAggregateInputObjectSchema.optional(), _max: SeleniumSettingsMaxAggregateInputObjectSchema.optional(), _avg: SeleniumSettingsAvgAggregateInputObjectSchema.optional(), _sum: SeleniumSettingsSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.SeleniumSettingsGroupByArgs>;

export const SeleniumSettingsGroupByZodSchema = z.object({ where: SeleniumSettingsWhereInputObjectSchema.optional(), orderBy: z.union([SeleniumSettingsOrderByWithAggregationInputObjectSchema, SeleniumSettingsOrderByWithAggregationInputObjectSchema.array()]).optional(), having: SeleniumSettingsScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(SeleniumSettingsScalarFieldEnumSchema), _count: z.union([ z.literal(true), SeleniumSettingsCountAggregateInputObjectSchema ]).optional(), _min: SeleniumSettingsMinAggregateInputObjectSchema.optional(), _max: SeleniumSettingsMaxAggregateInputObjectSchema.optional(), _avg: SeleniumSettingsAvgAggregateInputObjectSchema.optional(), _sum: SeleniumSettingsSumAggregateInputObjectSchema.optional() }).strict();