feat: persist AI conversation state in DB and fix LangGraph flow bugs
- Replace in-memory Maps in aiHandoffStore with DB-backed async functions using new patient_conversation table (stage + aiHandoff per patient) - Add afterHoursEnabled to ai_settings table (persists across restarts) - Fix runtime crash in reschedule-graph: mon/tue/wed variables were out of scope in the next-week fallback branch (ReferenceError) - Wire rescheduleGreeting and generalFallback chat templates through to LangGraph nodes so user-configured messages take effect - Add otherNode to reminder-graph to handle unclassified patient replies (e.g. "I want another appointment") and route to booking flow - Fetch chatTemplates once per webhook request instead of per stage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,7 @@ export * from './enums/OfficeHoursScalarFieldEnum.schema'
|
||||
export * from './enums/OfficeContactScalarFieldEnum.schema'
|
||||
export * from './enums/InsuranceContactScalarFieldEnum.schema'
|
||||
export * from './enums/ProcedureTimeslotScalarFieldEnum.schema'
|
||||
export * from './enums/PatientConversationScalarFieldEnum.schema'
|
||||
export * from './enums/SortOrder.schema'
|
||||
export * from './enums/NullableJsonNullValueInput.schema'
|
||||
export * from './enums/JsonNullValueInput.schema'
|
||||
@@ -557,6 +558,23 @@ export * from './updateManyAndReturnProcedureTimeslot.schema'
|
||||
export * from './upsertOneProcedureTimeslot.schema'
|
||||
export * from './aggregateProcedureTimeslot.schema'
|
||||
export * from './groupByProcedureTimeslot.schema'
|
||||
export * from './findUniquePatientConversation.schema'
|
||||
export * from './findUniqueOrThrowPatientConversation.schema'
|
||||
export * from './findFirstPatientConversation.schema'
|
||||
export * from './findFirstOrThrowPatientConversation.schema'
|
||||
export * from './findManyPatientConversation.schema'
|
||||
export * from './countPatientConversation.schema'
|
||||
export * from './createOnePatientConversation.schema'
|
||||
export * from './createManyPatientConversation.schema'
|
||||
export * from './createManyAndReturnPatientConversation.schema'
|
||||
export * from './deleteOnePatientConversation.schema'
|
||||
export * from './deleteManyPatientConversation.schema'
|
||||
export * from './updateOnePatientConversation.schema'
|
||||
export * from './updateManyPatientConversation.schema'
|
||||
export * from './updateManyAndReturnPatientConversation.schema'
|
||||
export * from './upsertOnePatientConversation.schema'
|
||||
export * from './aggregatePatientConversation.schema'
|
||||
export * from './groupByPatientConversation.schema'
|
||||
export * from './results/UserFindUniqueResult.schema'
|
||||
export * from './results/UserFindFirstResult.schema'
|
||||
export * from './results/UserFindManyResult.schema'
|
||||
@@ -947,6 +965,19 @@ export * from './results/ProcedureTimeslotDeleteManyResult.schema'
|
||||
export * from './results/ProcedureTimeslotAggregateResult.schema'
|
||||
export * from './results/ProcedureTimeslotGroupByResult.schema'
|
||||
export * from './results/ProcedureTimeslotCountResult.schema'
|
||||
export * from './results/PatientConversationFindUniqueResult.schema'
|
||||
export * from './results/PatientConversationFindFirstResult.schema'
|
||||
export * from './results/PatientConversationFindManyResult.schema'
|
||||
export * from './results/PatientConversationCreateResult.schema'
|
||||
export * from './results/PatientConversationCreateManyResult.schema'
|
||||
export * from './results/PatientConversationUpdateResult.schema'
|
||||
export * from './results/PatientConversationUpdateManyResult.schema'
|
||||
export * from './results/PatientConversationUpsertResult.schema'
|
||||
export * from './results/PatientConversationDeleteResult.schema'
|
||||
export * from './results/PatientConversationDeleteManyResult.schema'
|
||||
export * from './results/PatientConversationAggregateResult.schema'
|
||||
export * from './results/PatientConversationGroupByResult.schema'
|
||||
export * from './results/PatientConversationCountResult.schema'
|
||||
export * from './results/index'
|
||||
export * from './objects/index'
|
||||
export * from './variants/pure/User.pure'
|
||||
@@ -979,6 +1010,7 @@ export * from './variants/pure/OfficeHours.pure'
|
||||
export * from './variants/pure/OfficeContact.pure'
|
||||
export * from './variants/pure/InsuranceContact.pure'
|
||||
export * from './variants/pure/ProcedureTimeslot.pure'
|
||||
export * from './variants/pure/PatientConversation.pure'
|
||||
export * from './variants/pure/index'
|
||||
export * from './variants/input/User.input'
|
||||
export * from './variants/input/Patient.input'
|
||||
@@ -1010,6 +1042,7 @@ export * from './variants/input/OfficeHours.input'
|
||||
export * from './variants/input/OfficeContact.input'
|
||||
export * from './variants/input/InsuranceContact.input'
|
||||
export * from './variants/input/ProcedureTimeslot.input'
|
||||
export * from './variants/input/PatientConversation.input'
|
||||
export * from './variants/input/index'
|
||||
export * from './variants/result/User.result'
|
||||
export * from './variants/result/Patient.result'
|
||||
@@ -1041,5 +1074,6 @@ export * from './variants/result/OfficeHours.result'
|
||||
export * from './variants/result/OfficeContact.result'
|
||||
export * from './variants/result/InsuranceContact.result'
|
||||
export * from './variants/result/ProcedureTimeslot.result'
|
||||
export * from './variants/result/PatientConversation.result'
|
||||
export * from './variants/result/index'
|
||||
export * from './variants/index'
|
||||
Reference in New Issue
Block a user