import * as z from 'zod';
export const ServiceLineGroupByResultSchema = z.array(z.object({
  id: z.number().int(),
  claimId: z.number().int(),
  paymentId: z.number().int(),
  procedureCode: z.string(),
  procedureDate: z.date(),
  quad: z.string(),
  arch: z.string(),
  toothNumber: z.string(),
  toothSurface: z.string(),
  icn: z.string(),
  paidCode: z.string(),
  allowedAmount: z.number(),
  totalBilled: z.number(),
  totalPaid: z.number(),
  totalAdjusted: z.number(),
  totalDue: z.number(),
  _count: z.object({
    id: z.number(),
    claimId: z.number(),
    paymentId: z.number(),
    procedureCode: z.number(),
    procedureDate: z.number(),
    quad: z.number(),
    arch: z.number(),
    toothNumber: z.number(),
    toothSurface: z.number(),
    icn: z.number(),
    paidCode: z.number(),
    allowedAmount: z.number(),
    totalBilled: z.number(),
    totalPaid: z.number(),
    totalAdjusted: z.number(),
    totalDue: z.number(),
    status: z.number(),
    claim: z.number(),
    payment: z.number(),
    serviceLineTransactions: z.number()
  }).optional(),
  _sum: z.object({
    id: z.number().nullable(),
    claimId: z.number().nullable(),
    paymentId: z.number().nullable(),
    allowedAmount: z.number().nullable(),
    totalBilled: z.number().nullable(),
    totalPaid: z.number().nullable(),
    totalAdjusted: z.number().nullable(),
    totalDue: z.number().nullable()
  }).nullable().optional(),
  _avg: z.object({
    id: z.number().nullable(),
    claimId: z.number().nullable(),
    paymentId: z.number().nullable(),
    allowedAmount: z.number().nullable(),
    totalBilled: z.number().nullable(),
    totalPaid: z.number().nullable(),
    totalAdjusted: z.number().nullable(),
    totalDue: z.number().nullable()
  }).nullable().optional(),
  _min: z.object({
    id: z.number().int().nullable(),
    claimId: z.number().int().nullable(),
    paymentId: z.number().int().nullable(),
    procedureCode: z.string().nullable(),
    procedureDate: z.date().nullable(),
    quad: z.string().nullable(),
    arch: z.string().nullable(),
    toothNumber: z.string().nullable(),
    toothSurface: z.string().nullable(),
    icn: z.string().nullable(),
    paidCode: z.string().nullable(),
    allowedAmount: z.number().nullable(),
    totalBilled: z.number().nullable(),
    totalPaid: z.number().nullable(),
    totalAdjusted: z.number().nullable(),
    totalDue: z.number().nullable()
  }).nullable().optional(),
  _max: z.object({
    id: z.number().int().nullable(),
    claimId: z.number().int().nullable(),
    paymentId: z.number().int().nullable(),
    procedureCode: z.string().nullable(),
    procedureDate: z.date().nullable(),
    quad: z.string().nullable(),
    arch: z.string().nullable(),
    toothNumber: z.string().nullable(),
    toothSurface: z.string().nullable(),
    icn: z.string().nullable(),
    paidCode: z.string().nullable(),
    allowedAmount: z.number().nullable(),
    totalBilled: z.number().nullable(),
    totalPaid: z.number().nullable(),
    totalAdjusted: z.number().nullable(),
    totalDue: z.number().nullable()
  }).nullable().optional()
}));