| 1234567891011121314151617181920212223242526272829303132 |
- 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] = []
|