from pydantic import BaseModel from typing import Literal, Optional, List class HealthPlanGenerateRequest(BaseModel): member_ids: Optional[str] = None dimensions: Optional[str] = None goal: str = "" family_id: Optional[int] = None class PlanTask(BaseModel): action_type: Literal["buy", "read", "exercise", "checkin", "diet", "activity"] title: str dimension: Literal["body", "mind", "wisdom", "action", "wealth"] frequency: Literal["once", "daily"] = "daily" notes: Optional[str] = None class HealthPlanSection(BaseModel): key: str # "nutrition" | "diet" | "exercise" title: str content: str # markdown text items: List[dict] = [] # structured items for UI rendering tasks: List[PlanTask] = [] # machine-readable task intents class HealthPlanResponse(BaseModel): overview: str = "" sections: List[HealthPlanSection] = [] abnormal_indicators: List[dict] = [] knowledge_sources: List[dict] = []