from pydantic import BaseModel, Field from typing import Literal, Optional from datetime import date class RouteDecision(BaseModel): """ Structured outcome of a routing decision. Modified to support detailed chart intent extraction. """ route: Literal["CHAT", "CHART"] metric: Optional[str] = Field(None, description="Target metric: pace, hr, distance, etc.") period: Optional[str] = Field(None, description="Temporal scope: last_week, current_week, all_time") target_date: Optional[date] = Field(None, description="Specifically resolved date (e.g. for 'last week')")