feat: enhance new-patient AI chat flow with full scheduling and eligibility

- Add 3-message intro (self-intro → empathetic ack → new/existing question) via single TwiML response to guarantee delivery order
- Detect reschedule intent from first message; look up existing appointment date
- New patient flow: ask insurance type → MassHealth consent → member ID + DOB → Selenium eligibility check
- Post-eligibility: active → ask appointment date/time with office-hours validation; inactive → ask other insurance or collect contact info
- Date/time collection mirrors reschedule flow: check office day open, ask time, validate against office hours
- Auto-create appointment in schedule for known patients on confirmation; use first available staff member
- Add openPhoneReply toggle (Settings → AI Chat) to respond to any number at any time
- Add 5-minute inactivity timeout: reset conversation to initial stage and clear pending state
- Normalize MassHealth DOB to zero-padded MM/DD/YYYY before Selenium submission
- Expand isExistingPatient classifier to recognize "old patient", "old", "previous", "prior"
- Existing patient confirmation message now acknowledges patient type before asking about insurance

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gitead
2026-05-15 00:00:56 -04:00
parent c1f55778ca
commit c71624f7e7
53 changed files with 1078 additions and 124 deletions

File diff suppressed because one or more lines are too long

View File

@@ -423,7 +423,8 @@ exports.Prisma.AiSettingsScalarFieldEnum = {
id: 'id',
userId: 'userId',
apiKey: 'apiKey',
afterHoursEnabled: 'afterHoursEnabled'
afterHoursEnabled: 'afterHoursEnabled',
openPhoneReply: 'openPhoneReply'
};
exports.Prisma.OfficeHoursScalarFieldEnum = {

View File

@@ -34731,6 +34731,7 @@ export namespace Prisma {
userId: number | null
apiKey: string | null
afterHoursEnabled: boolean | null
openPhoneReply: boolean | null
}
export type AiSettingsMaxAggregateOutputType = {
@@ -34738,6 +34739,7 @@ export namespace Prisma {
userId: number | null
apiKey: string | null
afterHoursEnabled: boolean | null
openPhoneReply: boolean | null
}
export type AiSettingsCountAggregateOutputType = {
@@ -34745,6 +34747,7 @@ export namespace Prisma {
userId: number
apiKey: number
afterHoursEnabled: number
openPhoneReply: number
_all: number
}
@@ -34764,6 +34767,7 @@ export namespace Prisma {
userId?: true
apiKey?: true
afterHoursEnabled?: true
openPhoneReply?: true
}
export type AiSettingsMaxAggregateInputType = {
@@ -34771,6 +34775,7 @@ export namespace Prisma {
userId?: true
apiKey?: true
afterHoursEnabled?: true
openPhoneReply?: true
}
export type AiSettingsCountAggregateInputType = {
@@ -34778,6 +34783,7 @@ export namespace Prisma {
userId?: true
apiKey?: true
afterHoursEnabled?: true
openPhoneReply?: true
_all?: true
}
@@ -34872,6 +34878,7 @@ export namespace Prisma {
userId: number
apiKey: string
afterHoursEnabled: boolean
openPhoneReply: boolean
_count: AiSettingsCountAggregateOutputType | null
_avg: AiSettingsAvgAggregateOutputType | null
_sum: AiSettingsSumAggregateOutputType | null
@@ -34898,6 +34905,7 @@ export namespace Prisma {
userId?: boolean
apiKey?: boolean
afterHoursEnabled?: boolean
openPhoneReply?: boolean
user?: boolean | UserDefaultArgs<ExtArgs>
}, ExtArgs["result"]["aiSettings"]>
@@ -34906,6 +34914,7 @@ export namespace Prisma {
userId?: boolean
apiKey?: boolean
afterHoursEnabled?: boolean
openPhoneReply?: boolean
user?: boolean | UserDefaultArgs<ExtArgs>
}, ExtArgs["result"]["aiSettings"]>
@@ -34914,6 +34923,7 @@ export namespace Prisma {
userId?: boolean
apiKey?: boolean
afterHoursEnabled?: boolean
openPhoneReply?: boolean
user?: boolean | UserDefaultArgs<ExtArgs>
}, ExtArgs["result"]["aiSettings"]>
@@ -34922,9 +34932,10 @@ export namespace Prisma {
userId?: boolean
apiKey?: boolean
afterHoursEnabled?: boolean
openPhoneReply?: boolean
}
export type AiSettingsOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "apiKey" | "afterHoursEnabled", ExtArgs["result"]["aiSettings"]>
export type AiSettingsOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "userId" | "apiKey" | "afterHoursEnabled" | "openPhoneReply", ExtArgs["result"]["aiSettings"]>
export type AiSettingsInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
user?: boolean | UserDefaultArgs<ExtArgs>
}
@@ -34945,6 +34956,7 @@ export namespace Prisma {
userId: number
apiKey: string
afterHoursEnabled: boolean
openPhoneReply: boolean
}, ExtArgs["result"]["aiSettings"]>
composites: {}
}
@@ -35373,6 +35385,7 @@ export namespace Prisma {
readonly userId: FieldRef<"AiSettings", 'Int'>
readonly apiKey: FieldRef<"AiSettings", 'String'>
readonly afterHoursEnabled: FieldRef<"AiSettings", 'Boolean'>
readonly openPhoneReply: FieldRef<"AiSettings", 'Boolean'>
}
@@ -41715,7 +41728,8 @@ export namespace Prisma {
id: 'id',
userId: 'userId',
apiKey: 'apiKey',
afterHoursEnabled: 'afterHoursEnabled'
afterHoursEnabled: 'afterHoursEnabled',
openPhoneReply: 'openPhoneReply'
};
export type AiSettingsScalarFieldEnum = (typeof AiSettingsScalarFieldEnum)[keyof typeof AiSettingsScalarFieldEnum]
@@ -44229,6 +44243,7 @@ export namespace Prisma {
userId?: IntFilter<"AiSettings"> | number
apiKey?: StringFilter<"AiSettings"> | string
afterHoursEnabled?: BoolFilter<"AiSettings"> | boolean
openPhoneReply?: BoolFilter<"AiSettings"> | boolean
user?: XOR<UserScalarRelationFilter, UserWhereInput>
}
@@ -44237,6 +44252,7 @@ export namespace Prisma {
userId?: SortOrder
apiKey?: SortOrder
afterHoursEnabled?: SortOrder
openPhoneReply?: SortOrder
user?: UserOrderByWithRelationInput
}
@@ -44248,6 +44264,7 @@ export namespace Prisma {
NOT?: AiSettingsWhereInput | AiSettingsWhereInput[]
apiKey?: StringFilter<"AiSettings"> | string
afterHoursEnabled?: BoolFilter<"AiSettings"> | boolean
openPhoneReply?: BoolFilter<"AiSettings"> | boolean
user?: XOR<UserScalarRelationFilter, UserWhereInput>
}, "id" | "userId">
@@ -44256,6 +44273,7 @@ export namespace Prisma {
userId?: SortOrder
apiKey?: SortOrder
afterHoursEnabled?: SortOrder
openPhoneReply?: SortOrder
_count?: AiSettingsCountOrderByAggregateInput
_avg?: AiSettingsAvgOrderByAggregateInput
_max?: AiSettingsMaxOrderByAggregateInput
@@ -44271,6 +44289,7 @@ export namespace Prisma {
userId?: IntWithAggregatesFilter<"AiSettings"> | number
apiKey?: StringWithAggregatesFilter<"AiSettings"> | string
afterHoursEnabled?: BoolWithAggregatesFilter<"AiSettings"> | boolean
openPhoneReply?: BoolWithAggregatesFilter<"AiSettings"> | boolean
}
export type OfficeHoursWhereInput = {
@@ -46744,6 +46763,7 @@ export namespace Prisma {
export type AiSettingsCreateInput = {
apiKey: string
afterHoursEnabled?: boolean
openPhoneReply?: boolean
user: UserCreateNestedOneWithoutAiSettingsInput
}
@@ -46752,11 +46772,13 @@ export namespace Prisma {
userId: number
apiKey: string
afterHoursEnabled?: boolean
openPhoneReply?: boolean
}
export type AiSettingsUpdateInput = {
apiKey?: StringFieldUpdateOperationsInput | string
afterHoursEnabled?: BoolFieldUpdateOperationsInput | boolean
openPhoneReply?: BoolFieldUpdateOperationsInput | boolean
user?: UserUpdateOneRequiredWithoutAiSettingsNestedInput
}
@@ -46765,6 +46787,7 @@ export namespace Prisma {
userId?: IntFieldUpdateOperationsInput | number
apiKey?: StringFieldUpdateOperationsInput | string
afterHoursEnabled?: BoolFieldUpdateOperationsInput | boolean
openPhoneReply?: BoolFieldUpdateOperationsInput | boolean
}
export type AiSettingsCreateManyInput = {
@@ -46772,11 +46795,13 @@ export namespace Prisma {
userId: number
apiKey: string
afterHoursEnabled?: boolean
openPhoneReply?: boolean
}
export type AiSettingsUpdateManyMutationInput = {
apiKey?: StringFieldUpdateOperationsInput | string
afterHoursEnabled?: BoolFieldUpdateOperationsInput | boolean
openPhoneReply?: BoolFieldUpdateOperationsInput | boolean
}
export type AiSettingsUncheckedUpdateManyInput = {
@@ -46784,6 +46809,7 @@ export namespace Prisma {
userId?: IntFieldUpdateOperationsInput | number
apiKey?: StringFieldUpdateOperationsInput | string
afterHoursEnabled?: BoolFieldUpdateOperationsInput | boolean
openPhoneReply?: BoolFieldUpdateOperationsInput | boolean
}
export type OfficeHoursCreateInput = {
@@ -49191,6 +49217,7 @@ export namespace Prisma {
userId?: SortOrder
apiKey?: SortOrder
afterHoursEnabled?: SortOrder
openPhoneReply?: SortOrder
}
export type AiSettingsAvgOrderByAggregateInput = {
@@ -49203,6 +49230,7 @@ export namespace Prisma {
userId?: SortOrder
apiKey?: SortOrder
afterHoursEnabled?: SortOrder
openPhoneReply?: SortOrder
}
export type AiSettingsMinOrderByAggregateInput = {
@@ -49210,6 +49238,7 @@ export namespace Prisma {
userId?: SortOrder
apiKey?: SortOrder
afterHoursEnabled?: SortOrder
openPhoneReply?: SortOrder
}
export type AiSettingsSumOrderByAggregateInput = {
@@ -53081,12 +53110,14 @@ export namespace Prisma {
export type AiSettingsCreateWithoutUserInput = {
apiKey: string
afterHoursEnabled?: boolean
openPhoneReply?: boolean
}
export type AiSettingsUncheckedCreateWithoutUserInput = {
id?: number
apiKey: string
afterHoursEnabled?: boolean
openPhoneReply?: boolean
}
export type AiSettingsCreateOrConnectWithoutUserInput = {
@@ -53659,12 +53690,14 @@ export namespace Prisma {
export type AiSettingsUpdateWithoutUserInput = {
apiKey?: StringFieldUpdateOperationsInput | string
afterHoursEnabled?: BoolFieldUpdateOperationsInput | boolean
openPhoneReply?: BoolFieldUpdateOperationsInput | boolean
}
export type AiSettingsUncheckedUpdateWithoutUserInput = {
id?: IntFieldUpdateOperationsInput | number
apiKey?: StringFieldUpdateOperationsInput | string
afterHoursEnabled?: BoolFieldUpdateOperationsInput | boolean
openPhoneReply?: BoolFieldUpdateOperationsInput | boolean
}
export type OfficeHoursUpsertWithoutUserInput = {

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
{
"name": "prisma-client-7ab23aa0435ee62d1543cc6f3f10f1fac4ea741f94efe006ada0cea03090a0c9",
"name": "prisma-client-f058d09dfd4869ea5203c66c2370bac837d95f1a5aaea0632641bf080a04b5d8",
"main": "index.js",
"types": "index.d.ts",
"browser": "default.js",

View File

@@ -579,6 +579,7 @@ model AiSettings {
userId Int @unique
apiKey String
afterHoursEnabled Boolean @default(true)
openPhoneReply Boolean @default(false)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)

View File

@@ -580,6 +580,7 @@ model AiSettings {
userId Int @unique
apiKey String
afterHoursEnabled Boolean @default(true)
openPhoneReply Boolean @default(false)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)

View File

@@ -1,7 +1,7 @@
{
"version": "1.0",
"generatorVersion": "1.0.0",
"generatedAt": "2026-05-12T02:28:39.220Z",
"generatedAt": "2026-05-14T18:13:16.768Z",
"outputPath": "/home/ee/Desktop/DentalManagementMH05/packages/db/shared",
"files": [
"schemas/enums/TransactionIsolationLevel.schema.ts",

View File

@@ -1,5 +1,5 @@
import * as z from 'zod';
export const AiSettingsScalarFieldEnumSchema = z.enum(['id', 'userId', 'apiKey', 'afterHoursEnabled'])
export const AiSettingsScalarFieldEnumSchema = z.enum(['id', 'userId', 'apiKey', 'afterHoursEnabled', 'openPhoneReply'])
export type AiSettingsScalarFieldEnum = z.infer<typeof AiSettingsScalarFieldEnumSchema>;

View File

@@ -14,6 +14,7 @@ export const AiSettingsFindFirstSelectSchema: z.ZodType<Prisma.AiSettingsSelect>
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.boolean().optional()
}).strict() as unknown as z.ZodType<Prisma.AiSettingsSelect>;
@@ -22,6 +23,7 @@ export const AiSettingsFindFirstSelectZodSchema = z.object({
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.boolean().optional()
}).strict();

View File

@@ -14,6 +14,7 @@ export const AiSettingsFindFirstOrThrowSelectSchema: z.ZodType<Prisma.AiSettings
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.boolean().optional()
}).strict() as unknown as z.ZodType<Prisma.AiSettingsSelect>;
@@ -22,6 +23,7 @@ export const AiSettingsFindFirstOrThrowSelectZodSchema = z.object({
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.boolean().optional()
}).strict();

View File

@@ -14,6 +14,7 @@ export const AiSettingsFindManySelectSchema: z.ZodType<Prisma.AiSettingsSelect>
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.boolean().optional()
}).strict() as unknown as z.ZodType<Prisma.AiSettingsSelect>;
@@ -22,6 +23,7 @@ export const AiSettingsFindManySelectZodSchema = z.object({
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.boolean().optional()
}).strict();

View File

@@ -7,6 +7,7 @@ const makeSchema = () => z.object({
userId: z.literal(true).optional(),
apiKey: z.literal(true).optional(),
afterHoursEnabled: z.literal(true).optional(),
openPhoneReply: z.literal(true).optional(),
_all: z.literal(true).optional()
}).strict();
export const AiSettingsCountAggregateInputObjectSchema: z.ZodType<Prisma.AiSettingsCountAggregateInputType> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsCountAggregateInputType>;

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: SortOrderSchema.optional(),
userId: SortOrderSchema.optional(),
apiKey: SortOrderSchema.optional(),
afterHoursEnabled: SortOrderSchema.optional()
afterHoursEnabled: SortOrderSchema.optional(),
openPhoneReply: SortOrderSchema.optional()
}).strict();
export const AiSettingsCountOrderByAggregateInputObjectSchema: z.ZodType<Prisma.AiSettingsCountOrderByAggregateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsCountOrderByAggregateInput>;
export const AiSettingsCountOrderByAggregateInputObjectZodSchema = makeSchema();

View File

@@ -5,6 +5,7 @@ import { UserCreateNestedOneWithoutAiSettingsInputObjectSchema as UserCreateNest
const makeSchema = () => z.object({
apiKey: z.string(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.lazy(() => UserCreateNestedOneWithoutAiSettingsInputObjectSchema)
}).strict();
export const AiSettingsCreateInputObjectSchema: z.ZodType<Prisma.AiSettingsCreateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsCreateInput>;

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: z.number().int().optional(),
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean().optional()
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional()
}).strict();
export const AiSettingsCreateManyInputObjectSchema: z.ZodType<Prisma.AiSettingsCreateManyInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsCreateManyInput>;
export const AiSettingsCreateManyInputObjectZodSchema = makeSchema();

View File

@@ -4,7 +4,8 @@ import type { Prisma } from '../../../generated/prisma';
const makeSchema = () => z.object({
apiKey: z.string(),
afterHoursEnabled: z.boolean().optional()
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional()
}).strict();
export const AiSettingsCreateWithoutUserInputObjectSchema: z.ZodType<Prisma.AiSettingsCreateWithoutUserInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsCreateWithoutUserInput>;
export const AiSettingsCreateWithoutUserInputObjectZodSchema = makeSchema();

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: z.literal(true).optional(),
userId: z.literal(true).optional(),
apiKey: z.literal(true).optional(),
afterHoursEnabled: z.literal(true).optional()
afterHoursEnabled: z.literal(true).optional(),
openPhoneReply: z.literal(true).optional()
}).strict();
export const AiSettingsMaxAggregateInputObjectSchema: z.ZodType<Prisma.AiSettingsMaxAggregateInputType> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsMaxAggregateInputType>;
export const AiSettingsMaxAggregateInputObjectZodSchema = makeSchema();

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: SortOrderSchema.optional(),
userId: SortOrderSchema.optional(),
apiKey: SortOrderSchema.optional(),
afterHoursEnabled: SortOrderSchema.optional()
afterHoursEnabled: SortOrderSchema.optional(),
openPhoneReply: SortOrderSchema.optional()
}).strict();
export const AiSettingsMaxOrderByAggregateInputObjectSchema: z.ZodType<Prisma.AiSettingsMaxOrderByAggregateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsMaxOrderByAggregateInput>;
export const AiSettingsMaxOrderByAggregateInputObjectZodSchema = makeSchema();

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: z.literal(true).optional(),
userId: z.literal(true).optional(),
apiKey: z.literal(true).optional(),
afterHoursEnabled: z.literal(true).optional()
afterHoursEnabled: z.literal(true).optional(),
openPhoneReply: z.literal(true).optional()
}).strict();
export const AiSettingsMinAggregateInputObjectSchema: z.ZodType<Prisma.AiSettingsMinAggregateInputType> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsMinAggregateInputType>;
export const AiSettingsMinAggregateInputObjectZodSchema = makeSchema();

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: SortOrderSchema.optional(),
userId: SortOrderSchema.optional(),
apiKey: SortOrderSchema.optional(),
afterHoursEnabled: SortOrderSchema.optional()
afterHoursEnabled: SortOrderSchema.optional(),
openPhoneReply: SortOrderSchema.optional()
}).strict();
export const AiSettingsMinOrderByAggregateInputObjectSchema: z.ZodType<Prisma.AiSettingsMinOrderByAggregateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsMinOrderByAggregateInput>;
export const AiSettingsMinOrderByAggregateInputObjectZodSchema = makeSchema();

View File

@@ -12,6 +12,7 @@ const makeSchema = () => z.object({
userId: SortOrderSchema.optional(),
apiKey: SortOrderSchema.optional(),
afterHoursEnabled: SortOrderSchema.optional(),
openPhoneReply: SortOrderSchema.optional(),
_count: z.lazy(() => AiSettingsCountOrderByAggregateInputObjectSchema).optional(),
_avg: z.lazy(() => AiSettingsAvgOrderByAggregateInputObjectSchema).optional(),
_max: z.lazy(() => AiSettingsMaxOrderByAggregateInputObjectSchema).optional(),

View File

@@ -8,6 +8,7 @@ const makeSchema = () => z.object({
userId: SortOrderSchema.optional(),
apiKey: SortOrderSchema.optional(),
afterHoursEnabled: SortOrderSchema.optional(),
openPhoneReply: SortOrderSchema.optional(),
user: z.lazy(() => UserOrderByWithRelationInputObjectSchema).optional()
}).strict();
export const AiSettingsOrderByWithRelationInputObjectSchema: z.ZodType<Prisma.AiSettingsOrderByWithRelationInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsOrderByWithRelationInput>;

View File

@@ -11,7 +11,8 @@ const aisettingsscalarwherewithaggregatesinputSchema = z.object({
id: z.union([z.lazy(() => IntWithAggregatesFilterObjectSchema), z.number().int()]).optional(),
userId: z.union([z.lazy(() => IntWithAggregatesFilterObjectSchema), z.number().int()]).optional(),
apiKey: z.union([z.lazy(() => StringWithAggregatesFilterObjectSchema), z.string()]).optional(),
afterHoursEnabled: z.union([z.lazy(() => BoolWithAggregatesFilterObjectSchema), z.boolean()]).optional()
afterHoursEnabled: z.union([z.lazy(() => BoolWithAggregatesFilterObjectSchema), z.boolean()]).optional(),
openPhoneReply: z.union([z.lazy(() => BoolWithAggregatesFilterObjectSchema), z.boolean()]).optional()
}).strict();
export const AiSettingsScalarWhereWithAggregatesInputObjectSchema: z.ZodType<Prisma.AiSettingsScalarWhereWithAggregatesInput> = aisettingsscalarwherewithaggregatesinputSchema as unknown as z.ZodType<Prisma.AiSettingsScalarWhereWithAggregatesInput>;
export const AiSettingsScalarWhereWithAggregatesInputObjectZodSchema = aisettingsscalarwherewithaggregatesinputSchema;

View File

@@ -7,6 +7,7 @@ const makeSchema = () => z.object({
userId: z.boolean().optional(),
apiKey: z.boolean().optional(),
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional(),
user: z.union([z.boolean(), z.lazy(() => UserArgsObjectSchema)]).optional()
}).strict();
export const AiSettingsSelectObjectSchema: z.ZodType<Prisma.AiSettingsSelect> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsSelect>;

View File

@@ -6,7 +6,8 @@ const makeSchema = () => z.object({
id: z.number().int().optional(),
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean().optional()
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional()
}).strict();
export const AiSettingsUncheckedCreateInputObjectSchema: z.ZodType<Prisma.AiSettingsUncheckedCreateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUncheckedCreateInput>;
export const AiSettingsUncheckedCreateInputObjectZodSchema = makeSchema();

View File

@@ -5,7 +5,8 @@ import type { Prisma } from '../../../generated/prisma';
const makeSchema = () => z.object({
id: z.number().int().optional(),
apiKey: z.string(),
afterHoursEnabled: z.boolean().optional()
afterHoursEnabled: z.boolean().optional(),
openPhoneReply: z.boolean().optional()
}).strict();
export const AiSettingsUncheckedCreateWithoutUserInputObjectSchema: z.ZodType<Prisma.AiSettingsUncheckedCreateWithoutUserInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUncheckedCreateWithoutUserInput>;
export const AiSettingsUncheckedCreateWithoutUserInputObjectZodSchema = makeSchema();

View File

@@ -8,7 +8,8 @@ const makeSchema = () => z.object({
id: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
userId: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
apiKey: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
openPhoneReply: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
}).strict();
export const AiSettingsUncheckedUpdateInputObjectSchema: z.ZodType<Prisma.AiSettingsUncheckedUpdateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUncheckedUpdateInput>;
export const AiSettingsUncheckedUpdateInputObjectZodSchema = makeSchema();

View File

@@ -8,7 +8,8 @@ const makeSchema = () => z.object({
id: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
userId: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
apiKey: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
openPhoneReply: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
}).strict();
export const AiSettingsUncheckedUpdateManyInputObjectSchema: z.ZodType<Prisma.AiSettingsUncheckedUpdateManyInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUncheckedUpdateManyInput>;
export const AiSettingsUncheckedUpdateManyInputObjectZodSchema = makeSchema();

View File

@@ -7,7 +7,8 @@ import { BoolFieldUpdateOperationsInputObjectSchema as BoolFieldUpdateOperations
const makeSchema = () => z.object({
id: z.union([z.number().int(), z.lazy(() => IntFieldUpdateOperationsInputObjectSchema)]).optional(),
apiKey: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
openPhoneReply: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
}).strict();
export const AiSettingsUncheckedUpdateWithoutUserInputObjectSchema: z.ZodType<Prisma.AiSettingsUncheckedUpdateWithoutUserInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUncheckedUpdateWithoutUserInput>;
export const AiSettingsUncheckedUpdateWithoutUserInputObjectZodSchema = makeSchema();

View File

@@ -7,6 +7,7 @@ import { UserUpdateOneRequiredWithoutAiSettingsNestedInputObjectSchema as UserUp
const makeSchema = () => z.object({
apiKey: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
openPhoneReply: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
user: z.lazy(() => UserUpdateOneRequiredWithoutAiSettingsNestedInputObjectSchema).optional()
}).strict();
export const AiSettingsUpdateInputObjectSchema: z.ZodType<Prisma.AiSettingsUpdateInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUpdateInput>;

View File

@@ -5,7 +5,8 @@ import { BoolFieldUpdateOperationsInputObjectSchema as BoolFieldUpdateOperations
const makeSchema = () => z.object({
apiKey: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
openPhoneReply: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
}).strict();
export const AiSettingsUpdateManyMutationInputObjectSchema: z.ZodType<Prisma.AiSettingsUpdateManyMutationInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUpdateManyMutationInput>;
export const AiSettingsUpdateManyMutationInputObjectZodSchema = makeSchema();

View File

@@ -5,7 +5,8 @@ import { BoolFieldUpdateOperationsInputObjectSchema as BoolFieldUpdateOperations
const makeSchema = () => z.object({
apiKey: z.union([z.string(), z.lazy(() => StringFieldUpdateOperationsInputObjectSchema)]).optional(),
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
afterHoursEnabled: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional(),
openPhoneReply: z.union([z.boolean(), z.lazy(() => BoolFieldUpdateOperationsInputObjectSchema)]).optional()
}).strict();
export const AiSettingsUpdateWithoutUserInputObjectSchema: z.ZodType<Prisma.AiSettingsUpdateWithoutUserInput> = makeSchema() as unknown as z.ZodType<Prisma.AiSettingsUpdateWithoutUserInput>;
export const AiSettingsUpdateWithoutUserInputObjectZodSchema = makeSchema();

View File

@@ -14,6 +14,7 @@ const aisettingswhereinputSchema = z.object({
userId: z.union([z.lazy(() => IntFilterObjectSchema), z.number().int()]).optional(),
apiKey: z.union([z.lazy(() => StringFilterObjectSchema), z.string()]).optional(),
afterHoursEnabled: z.union([z.lazy(() => BoolFilterObjectSchema), z.boolean()]).optional(),
openPhoneReply: z.union([z.lazy(() => BoolFilterObjectSchema), z.boolean()]).optional(),
user: z.union([z.lazy(() => UserScalarRelationFilterObjectSchema), z.lazy(() => UserWhereInputObjectSchema)]).optional()
}).strict();
export const AiSettingsWhereInputObjectSchema: z.ZodType<Prisma.AiSettingsWhereInput> = aisettingswhereinputSchema as unknown as z.ZodType<Prisma.AiSettingsWhereInput>;

View File

@@ -4,6 +4,7 @@ export const AiSettingsAggregateResultSchema = z.object({ _count: z.object({
userId: z.number(),
apiKey: z.number(),
afterHoursEnabled: z.number(),
openPhoneReply: z.number(),
user: z.number()
}).optional(),
_sum: z.object({

View File

@@ -4,5 +4,6 @@ export const AiSettingsCreateResultSchema = z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
});

View File

@@ -4,5 +4,6 @@ export const AiSettingsDeleteResultSchema = z.nullable(z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}));

View File

@@ -4,5 +4,6 @@ export const AiSettingsFindFirstResultSchema = z.nullable(z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}));

View File

@@ -5,6 +5,7 @@ export const AiSettingsFindManyResultSchema = z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
})),
pagination: z.object({

View File

@@ -4,5 +4,6 @@ export const AiSettingsFindUniqueResultSchema = z.nullable(z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}));

View File

@@ -4,11 +4,13 @@ export const AiSettingsGroupByResultSchema = z.array(z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
_count: z.object({
id: z.number(),
userId: z.number(),
apiKey: z.number(),
afterHoursEnabled: z.number(),
openPhoneReply: z.number(),
user: z.number()
}).optional(),
_sum: z.object({

View File

@@ -4,5 +4,6 @@ export const AiSettingsUpdateResultSchema = z.nullable(z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}));

View File

@@ -4,5 +4,6 @@ export const AiSettingsUpsertResultSchema = z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
});

View File

@@ -5,6 +5,7 @@ export const AiSettingsInputSchema = z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}).strict();

View File

@@ -5,6 +5,7 @@ export const AiSettingsModelSchema = z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}).strict();

View File

@@ -5,6 +5,7 @@ export const AiSettingsResultSchema = z.object({
userId: z.number().int(),
apiKey: z.string(),
afterHoursEnabled: z.boolean(),
openPhoneReply: z.boolean(),
user: z.unknown()
}).strict();