Files
DentalManagementMH07/packages/db/shared/schemas/objects/AppointmentProcedureWhereInput.schema.ts
ff b1932fa3d6 feat: add Provider field to appointment form, drive AI claim automation
Adds an optional Provider (NPI) select to the Edit Appointment form,
sourced from Settings > NPI Providers. The AI "Claim for Column" batch
flow now prefers the appointment's own provider when resolving which
provider Selenium should select on the insurance site (e.g. MassHealth
rendering provider dropdown), falling back to the existing per-procedure
selection, active claim, or first configured provider.

Also resyncs packages/db's committed compiled schema/client artifacts
with their .ts sources — they had drifted out of sync (some untouched
since July), which was silently stripping the new npiProviderId field
via stale .strict() zod schemas.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-20 23:07:10 -04:00

53 lines
4.6 KiB
TypeScript

import * as z from 'zod';
import type { Prisma } from '../../../generated/prisma';
import { IntFilterObjectSchema as IntFilterObjectSchema } from './IntFilter.schema';
import { IntNullableFilterObjectSchema as IntNullableFilterObjectSchema } from './IntNullableFilter.schema';
import { StringFilterObjectSchema as StringFilterObjectSchema } from './StringFilter.schema';
import { StringNullableFilterObjectSchema as StringNullableFilterObjectSchema } from './StringNullableFilter.schema';
import { DecimalNullableFilterObjectSchema as DecimalNullableFilterObjectSchema } from './DecimalNullableFilter.schema';
import { EnumProcedureSourceFilterObjectSchema as EnumProcedureSourceFilterObjectSchema } from './EnumProcedureSourceFilter.schema';
import { ProcedureSourceSchema } from '../enums/ProcedureSource.schema';
import { DateTimeFilterObjectSchema as DateTimeFilterObjectSchema } from './DateTimeFilter.schema';
import { AppointmentScalarRelationFilterObjectSchema as AppointmentScalarRelationFilterObjectSchema } from './AppointmentScalarRelationFilter.schema';
import { AppointmentWhereInputObjectSchema as AppointmentWhereInputObjectSchema } from './AppointmentWhereInput.schema';
import { PatientScalarRelationFilterObjectSchema as PatientScalarRelationFilterObjectSchema } from './PatientScalarRelationFilter.schema';
import { PatientWhereInputObjectSchema as PatientWhereInputObjectSchema } from './PatientWhereInput.schema';
import { NpiProviderNullableScalarRelationFilterObjectSchema as NpiProviderNullableScalarRelationFilterObjectSchema } from './NpiProviderNullableScalarRelationFilter.schema';
import { NpiProviderWhereInputObjectSchema as NpiProviderWhereInputObjectSchema } from './NpiProviderWhereInput.schema'
import { DecimalJSLikeSchema, isValidDecimalInput } from '../../helpers/decimal-helpers';
import Decimal from "decimal.js";
const appointmentprocedurewhereinputSchema = z.object({
AND: z.union([z.lazy(() => AppointmentProcedureWhereInputObjectSchema), z.lazy(() => AppointmentProcedureWhereInputObjectSchema).array()]).optional(),
OR: z.lazy(() => AppointmentProcedureWhereInputObjectSchema).array().optional(),
NOT: z.union([z.lazy(() => AppointmentProcedureWhereInputObjectSchema), z.lazy(() => AppointmentProcedureWhereInputObjectSchema).array()]).optional(),
id: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
appointmentId: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
patientId: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
npiProviderId: z.union([z.lazy(() => IntNullableFilterObjectSchema), z.number().int()]).optional().nullable(),
procedureCode: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
procedureLabel: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
fee: z.union([z.lazy(() => DecimalNullableFilterObjectSchema), z.union([
z.number(),
z.string(),
z.instanceof(Decimal),
z.instanceof(Decimal),
DecimalJSLikeSchema,
]).refine((v) => isValidDecimalInput(v), {
message: "Field 'fee' must be a Decimal",
})]).optional().nullable(),
category: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
toothNumber: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
toothSurface: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
oralCavityArea: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
source: z.union([z.lazy(() => EnumProcedureSourceFilterObjectSchema), ProcedureSourceSchema]).optional(),
comboKey: z.union([z.lazy(() => StringNullableFilterObjectSchema), z.string()]).optional().nullable(),
createdAt: z.union([z.lazy(() => DateTimeFilterObjectSchema), z.coerce.date()]).optional(),
appointment: z.union([z.lazy(() => AppointmentScalarRelationFilterObjectSchema), z.lazy(() => AppointmentWhereInputObjectSchema)]).optional(),
patient: z.union([z.lazy(() => PatientScalarRelationFilterObjectSchema), z.lazy(() => PatientWhereInputObjectSchema)]).optional(),
npiProvider: z.union([z.lazy(() => NpiProviderNullableScalarRelationFilterObjectSchema), z.lazy(() => NpiProviderWhereInputObjectSchema)]).optional()
}).strict();
export const AppointmentProcedureWhereInputObjectSchema: z.ZodType<Prisma.AppointmentProcedureWhereInput> = appointmentprocedurewhereinputSchema as unknown as z.ZodType<Prisma.AppointmentProcedureWhereInput>;
export const AppointmentProcedureWhereInputObjectZodSchema = appointmentprocedurewhereinputSchema;