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 { ServiceLineTransactionCountOrderByAggregateInputObjectSchema as ServiceLineTransactionCountOrderByAggregateInputObjectSchema } from './ServiceLineTransactionCountOrderByAggregateInput.schema';
import { ServiceLineTransactionAvgOrderByAggregateInputObjectSchema as ServiceLineTransactionAvgOrderByAggregateInputObjectSchema } from './ServiceLineTransactionAvgOrderByAggregateInput.schema';
import { ServiceLineTransactionMaxOrderByAggregateInputObjectSchema as ServiceLineTransactionMaxOrderByAggregateInputObjectSchema } from './ServiceLineTransactionMaxOrderByAggregateInput.schema';
import { ServiceLineTransactionMinOrderByAggregateInputObjectSchema as ServiceLineTransactionMinOrderByAggregateInputObjectSchema } from './ServiceLineTransactionMinOrderByAggregateInput.schema';
import { ServiceLineTransactionSumOrderByAggregateInputObjectSchema as ServiceLineTransactionSumOrderByAggregateInputObjectSchema } from './ServiceLineTransactionSumOrderByAggregateInput.schema'

const makeSchema = () => z.object({
  id: SortOrderSchema.optional(),
  paymentId: SortOrderSchema.optional(),
  serviceLineId: SortOrderSchema.optional(),
  transactionId: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  paidAmount: SortOrderSchema.optional(),
  adjustedAmount: SortOrderSchema.optional(),
  method: SortOrderSchema.optional(),
  receivedDate: SortOrderSchema.optional(),
  payerName: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  notes: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
  createdAt: SortOrderSchema.optional(),
  _count: z.lazy(() => ServiceLineTransactionCountOrderByAggregateInputObjectSchema).optional(),
  _avg: z.lazy(() => ServiceLineTransactionAvgOrderByAggregateInputObjectSchema).optional(),
  _max: z.lazy(() => ServiceLineTransactionMaxOrderByAggregateInputObjectSchema).optional(),
  _min: z.lazy(() => ServiceLineTransactionMinOrderByAggregateInputObjectSchema).optional(),
  _sum: z.lazy(() => ServiceLineTransactionSumOrderByAggregateInputObjectSchema).optional()
}).strict();
export const ServiceLineTransactionOrderByWithAggregationInputObjectSchema: z.ZodType<Prisma.ServiceLineTransactionOrderByWithAggregationInput> = makeSchema() as unknown as z.ZodType<Prisma.ServiceLineTransactionOrderByWithAggregationInput>;
export const ServiceLineTransactionOrderByWithAggregationInputObjectZodSchema = makeSchema();
