Spaces:
Runtime error
Runtime error
| """ | |
| LangGraph State Schema — defines the typed state that flows through the scheduling graph. | |
| """ | |
| from typing import TypedDict, Optional | |
| class SchedulingState(TypedDict): | |
| """State object that passes through all nodes in the scheduling graph. | |
| Fields populated by the dashboard (input): | |
| - patient_id, visit_level, visit_address, preferred_dates, preferred_time_window | |
| Fields populated by agent nodes (intermediate): | |
| - available_providers, travel_times, ranked_matches | |
| Fields requiring human-in-the-loop (interaction): | |
| - user_selection | |
| Fields populated at completion (output): | |
| - booked_appointment, notifications_sent, error | |
| """ | |
| # --- Inputs from dashboard --- | |
| patient_id: str | |
| patient_name: str | |
| patient_email: str | |
| visit_level: int | str | |
| visit_address: str | |
| visit_lat: float | |
| visit_lng: float | |
| preferred_dates: list[str] # ["2026-03-20", "2026-03-21"] | |
| preferred_time_window: dict # {"start": "09:00", "end": "12:00"} | |
| # --- Intermediate results --- | |
| available_providers: list[dict] # Providers passing availability check | |
| travel_times: list[dict] # Provider dicts enriched with travel_time_minutes | |
| ranked_matches: list[dict] # Final ranked list presented to user | |
| # --- Human-in-the-loop --- | |
| user_selection: Optional[dict] # The provider+time combo the user picked | |
| # --- Outputs --- | |
| booked_appointment: Optional[dict] # The created appointment record | |
| notifications_sent: bool | |
| error: Optional[str] # Error message if something went wrong | |