Files
DentalManagementMH06/packages/db/shared/schemas/objects/ClaimOrderByWithRelationInput.schema.ts
Gitead e1fe4862d5 fix: allow claims without appointment + support post/core multi-tooth input
- Make appointmentId nullable/optional in Prisma Zod schema via @zod rich
  comment so claims can be submitted without an existing appointment
- Convert undefined appointmentId to null in all claim form handlers and
  the backend claim creation endpoint
- Add AI classifier rule for expanding one procedure across multiple
  comma-separated tooth numbers (e.g. "post/core on #23, 24, 25, 26")
- Add "post/core" (slash) alias to CDT lookup maps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 22:57:24 -04:00

45 lines
3.5 KiB
TypeScript

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 { PatientOrderByWithRelationInputObjectSchema as PatientOrderByWithRelationInputObjectSchema } from './PatientOrderByWithRelationInput.schema';
import { AppointmentOrderByWithRelationInputObjectSchema as AppointmentOrderByWithRelationInputObjectSchema } from './AppointmentOrderByWithRelationInput.schema';
import { UserOrderByWithRelationInputObjectSchema as UserOrderByWithRelationInputObjectSchema } from './UserOrderByWithRelationInput.schema';
import { StaffOrderByWithRelationInputObjectSchema as StaffOrderByWithRelationInputObjectSchema } from './StaffOrderByWithRelationInput.schema';
import { NpiProviderOrderByWithRelationInputObjectSchema as NpiProviderOrderByWithRelationInputObjectSchema } from './NpiProviderOrderByWithRelationInput.schema';
import { ServiceLineOrderByRelationAggregateInputObjectSchema as ServiceLineOrderByRelationAggregateInputObjectSchema } from './ServiceLineOrderByRelationAggregateInput.schema';
import { ClaimFileOrderByRelationAggregateInputObjectSchema as ClaimFileOrderByRelationAggregateInputObjectSchema } from './ClaimFileOrderByRelationAggregateInput.schema';
import { PaymentOrderByWithRelationInputObjectSchema as PaymentOrderByWithRelationInputObjectSchema } from './PaymentOrderByWithRelationInput.schema'
const makeSchema = () => z.object({
id: SortOrderSchema.optional(),
patientId: SortOrderSchema.optional(),
appointmentId: z.union([z.number().int().int(), z.lazy(() => SortOrderInputObjectSchema)]).optional(),
userId: SortOrderSchema.optional(),
staffId: SortOrderSchema.optional(),
patientName: SortOrderSchema.optional(),
memberId: SortOrderSchema.optional(),
dateOfBirth: SortOrderSchema.optional(),
remarks: SortOrderSchema.optional(),
missingTeethStatus: SortOrderSchema.optional(),
missingTeeth: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
serviceDate: SortOrderSchema.optional(),
insuranceProvider: SortOrderSchema.optional(),
createdAt: SortOrderSchema.optional(),
updatedAt: SortOrderSchema.optional(),
status: SortOrderSchema.optional(),
claimNumber: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
preAuthNumber: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
npiProviderId: z.union([SortOrderSchema, z.lazy(() => SortOrderInputObjectSchema)]).optional(),
patient: z.lazy(() => PatientOrderByWithRelationInputObjectSchema).optional(),
appointment: z.lazy(() => AppointmentOrderByWithRelationInputObjectSchema).optional(),
user: z.lazy(() => UserOrderByWithRelationInputObjectSchema).optional(),
staff: z.lazy(() => StaffOrderByWithRelationInputObjectSchema).optional(),
npiProvider: z.lazy(() => NpiProviderOrderByWithRelationInputObjectSchema).optional(),
serviceLines: z.lazy(() => ServiceLineOrderByRelationAggregateInputObjectSchema).optional(),
claimFiles: z.lazy(() => ClaimFileOrderByRelationAggregateInputObjectSchema).optional(),
payment: z.lazy(() => PaymentOrderByWithRelationInputObjectSchema).optional()
}).strict();
export const ClaimOrderByWithRelationInputObjectSchema: z.ZodType<Prisma.ClaimOrderByWithRelationInput> = makeSchema() as unknown as z.ZodType<Prisma.ClaimOrderByWithRelationInput>;
export const ClaimOrderByWithRelationInputObjectZodSchema = makeSchema();