Files
DentalManagementMH06/packages/db/shared/schemas/results/AiSettingsAggregateResult.schema.ts
ff 2457e12b5c feat: AI API Setting page with 4 provider sections and toggles
Add OpenAI, Claude AI, and DentalManagement AI sections to the AI API
Setting page, each with a masked API key input and an on/off toggle
(defaulting to off). Rename sidebar label from "Google AI Settings" to
"AI API Setting". Add provider-key and provider-enabled backend endpoints
and extend the AiSettings schema with 6 new fields.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 16:36:01 -04:00

40 lines
1.2 KiB
TypeScript

import * as z from 'zod';
export const AiSettingsAggregateResultSchema = z.object({ _count: z.object({
id: z.number(),
userId: z.number(),
apiKey: z.number(),
aiEnabled: z.number(),
openAiKey: z.number(),
openAiEnabled: z.number(),
claudeAiKey: z.number(),
claudeAiEnabled: z.number(),
dentalMgmtKey: z.number(),
dentalMgmtEnabled: z.number(),
afterHoursEnabled: z.number(),
openPhoneReply: z.number(),
user: z.number()
}).optional(),
_sum: z.object({
id: z.number().nullable(),
userId: z.number().nullable()
}).nullable().optional(),
_avg: z.object({
id: z.number().nullable(),
userId: z.number().nullable()
}).nullable().optional(),
_min: z.object({
id: z.number().int().nullable(),
userId: z.number().int().nullable(),
apiKey: z.string().nullable(),
openAiKey: z.string().nullable(),
claudeAiKey: z.string().nullable(),
dentalMgmtKey: z.string().nullable()
}).nullable().optional(),
_max: z.object({
id: z.number().int().nullable(),
userId: z.number().int().nullable(),
apiKey: z.string().nullable(),
openAiKey: z.string().nullable(),
claudeAiKey: z.string().nullable(),
dentalMgmtKey: z.string().nullable()
}).nullable().optional()});