import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { ServiceLineTransactionWhereInputObjectSchema as ServiceLineTransactionWhereInputObjectSchema } from './objects/ServiceLineTransactionWhereInput.schema';
import { ServiceLineTransactionOrderByWithAggregationInputObjectSchema as ServiceLineTransactionOrderByWithAggregationInputObjectSchema } from './objects/ServiceLineTransactionOrderByWithAggregationInput.schema';
import { ServiceLineTransactionScalarWhereWithAggregatesInputObjectSchema as ServiceLineTransactionScalarWhereWithAggregatesInputObjectSchema } from './objects/ServiceLineTransactionScalarWhereWithAggregatesInput.schema';
import { ServiceLineTransactionScalarFieldEnumSchema } from './enums/ServiceLineTransactionScalarFieldEnum.schema';
import { ServiceLineTransactionCountAggregateInputObjectSchema as ServiceLineTransactionCountAggregateInputObjectSchema } from './objects/ServiceLineTransactionCountAggregateInput.schema';
import { ServiceLineTransactionMinAggregateInputObjectSchema as ServiceLineTransactionMinAggregateInputObjectSchema } from './objects/ServiceLineTransactionMinAggregateInput.schema';
import { ServiceLineTransactionMaxAggregateInputObjectSchema as ServiceLineTransactionMaxAggregateInputObjectSchema } from './objects/ServiceLineTransactionMaxAggregateInput.schema';
import { ServiceLineTransactionAvgAggregateInputObjectSchema as ServiceLineTransactionAvgAggregateInputObjectSchema } from './objects/ServiceLineTransactionAvgAggregateInput.schema';
import { ServiceLineTransactionSumAggregateInputObjectSchema as ServiceLineTransactionSumAggregateInputObjectSchema } from './objects/ServiceLineTransactionSumAggregateInput.schema';

export const ServiceLineTransactionGroupBySchema: z.ZodType<Prisma.ServiceLineTransactionGroupByArgs> = z.object({ where: ServiceLineTransactionWhereInputObjectSchema.optional(), orderBy: z.union([ServiceLineTransactionOrderByWithAggregationInputObjectSchema, ServiceLineTransactionOrderByWithAggregationInputObjectSchema.array()]).optional(), having: ServiceLineTransactionScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(ServiceLineTransactionScalarFieldEnumSchema), _count: z.union([ z.literal(true), ServiceLineTransactionCountAggregateInputObjectSchema ]).optional(), _min: ServiceLineTransactionMinAggregateInputObjectSchema.optional(), _max: ServiceLineTransactionMaxAggregateInputObjectSchema.optional(), _avg: ServiceLineTransactionAvgAggregateInputObjectSchema.optional(), _sum: ServiceLineTransactionSumAggregateInputObjectSchema.optional() }).strict() as unknown as z.ZodType<Prisma.ServiceLineTransactionGroupByArgs>;

export const ServiceLineTransactionGroupByZodSchema = z.object({ where: ServiceLineTransactionWhereInputObjectSchema.optional(), orderBy: z.union([ServiceLineTransactionOrderByWithAggregationInputObjectSchema, ServiceLineTransactionOrderByWithAggregationInputObjectSchema.array()]).optional(), having: ServiceLineTransactionScalarWhereWithAggregatesInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), by: z.array(ServiceLineTransactionScalarFieldEnumSchema), _count: z.union([ z.literal(true), ServiceLineTransactionCountAggregateInputObjectSchema ]).optional(), _min: ServiceLineTransactionMinAggregateInputObjectSchema.optional(), _max: ServiceLineTransactionMaxAggregateInputObjectSchema.optional(), _avg: ServiceLineTransactionAvgAggregateInputObjectSchema.optional(), _sum: ServiceLineTransactionSumAggregateInputObjectSchema.optional() }).strict();