import * as z from 'zod';
import { MissingTeethStatusSchema } from '../../enums/MissingTeethStatus.schema';
import { ClaimStatusSchema } from '../../enums/ClaimStatus.schema';
// prettier-ignore
export const ClaimInputSchema = z.object({
    id: z.number().int(),
    patientId: z.number().int(),
    appointmentId: z.number().int().optional().nullable(),
    userId: z.number().int(),
    staffId: z.number().int(),
    patientName: z.string(),
    memberId: z.string(),
    dateOfBirth: z.date(),
    remarks: z.string(),
    missingTeethStatus: MissingTeethStatusSchema,
    missingTeeth: z.unknown().optional().nullable(),
    serviceDate: z.date(),
    insuranceProvider: z.string(),
    createdAt: z.date(),
    updatedAt: z.date(),
    status: ClaimStatusSchema,
    claimNumber: z.string().optional().nullable(),
    preAuthNumber: z.string().optional().nullable(),
    npiProviderId: z.number().int().optional().nullable(),
    patient: z.unknown(),
    appointment: z.unknown().optional().nullable(),
    user: z.unknown().optional().nullable(),
    staff: z.unknown().optional().nullable(),
    npiProvider: z.unknown().optional().nullable(),
    serviceLines: z.array(z.unknown()),
    claimFiles: z.array(z.unknown()),
    payment: z.unknown().optional().nullable()
}).strict();

export type ClaimInputType = z.infer<typeof ClaimInputSchema>;
