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 { PaymentOrderByWithRelationInputObjectSchema as PaymentOrderByWithRelationInputObjectSchema } from './PaymentOrderByWithRelationInput.schema';
import { ServiceLineOrderByWithRelationInputObjectSchema as ServiceLineOrderByWithRelationInputObjectSchema } from './ServiceLineOrderByWithRelationInput.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(),
  payment: z.lazy(() => PaymentOrderByWithRelationInputObjectSchema).optional(),
  serviceLine: z.lazy(() => ServiceLineOrderByWithRelationInputObjectSchema).optional()
}).strict();
export const ServiceLineTransactionOrderByWithRelationInputObjectSchema: z.ZodType<Prisma.ServiceLineTransactionOrderByWithRelationInput> = makeSchema() as unknown as z.ZodType<Prisma.ServiceLineTransactionOrderByWithRelationInput>;
export const ServiceLineTransactionOrderByWithRelationInputObjectZodSchema = makeSchema();
