feat: add Selenium Settings page to configure paymentGroupId per office

Adds a new Settings → Advanced → Selenium Settings page where the office
name (paymentGroupId) used in United/DentalHub portal dropdowns can be
configured without touching code. Previously hardcoded as "Summit Dental
Care"; now injected from DB into the three United workers at job dispatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 23:53:43 -04:00
co-authored by Claude Sonnet 4.6
parent abb2a0ac96
commit 75ecd7cc20
998 changed files with 18415 additions and 283 deletions
@@ -20,7 +20,8 @@ import { OfficeContactCreateNestedOneWithoutUserInputObjectSchema as OfficeConta
import { ProcedureTimeslotCreateNestedOneWithoutUserInputObjectSchema as ProcedureTimeslotCreateNestedOneWithoutUserInputObjectSchema } from './ProcedureTimeslotCreateNestedOneWithoutUserInput.schema';
import { InsuranceContactCreateNestedManyWithoutUserInputObjectSchema as InsuranceContactCreateNestedManyWithoutUserInputObjectSchema } from './InsuranceContactCreateNestedManyWithoutUserInput.schema';
import { PatientConversationCreateNestedManyWithoutUserInputObjectSchema as PatientConversationCreateNestedManyWithoutUserInputObjectSchema } from './PatientConversationCreateNestedManyWithoutUserInput.schema';
import { LabRxTemplateCreateNestedManyWithoutUserInputObjectSchema as LabRxTemplateCreateNestedManyWithoutUserInputObjectSchema } from './LabRxTemplateCreateNestedManyWithoutUserInput.schema'
import { LabRxTemplateCreateNestedManyWithoutUserInputObjectSchema as LabRxTemplateCreateNestedManyWithoutUserInputObjectSchema } from './LabRxTemplateCreateNestedManyWithoutUserInput.schema';
import { SeleniumSettingsCreateNestedOneWithoutUserInputObjectSchema as SeleniumSettingsCreateNestedOneWithoutUserInputObjectSchema } from './SeleniumSettingsCreateNestedOneWithoutUserInput.schema'
const makeSchema = () => z.object({
username: z.string(),
@@ -52,7 +53,8 @@ const makeSchema = () => z.object({
procedureTimeslot: z.lazy(() => ProcedureTimeslotCreateNestedOneWithoutUserInputObjectSchema).optional(),
insuranceContacts: z.lazy(() => InsuranceContactCreateNestedManyWithoutUserInputObjectSchema).optional(),
patientConversations: z.lazy(() => PatientConversationCreateNestedManyWithoutUserInputObjectSchema).optional(),
labRxTemplates: z.lazy(() => LabRxTemplateCreateNestedManyWithoutUserInputObjectSchema).optional()
labRxTemplates: z.lazy(() => LabRxTemplateCreateNestedManyWithoutUserInputObjectSchema).optional(),
seleniumSettings: z.lazy(() => SeleniumSettingsCreateNestedOneWithoutUserInputObjectSchema).optional()
}).strict();
export const UserCreateWithoutTwilioSettingsInputObjectSchema: z.ZodType<Prisma.UserCreateWithoutTwilioSettingsInput> = makeSchema() as unknown as z.ZodType<Prisma.UserCreateWithoutTwilioSettingsInput>;
export const UserCreateWithoutTwilioSettingsInputObjectZodSchema = makeSchema();