from datetime import datetime from typing import Optional from sqlmodel import JSON, Field, SQLModel class Plan(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) user_id: int = Field(foreign_key="user.id") goal: str = Field(index=True) # e.g., "lose weight", "gain muscle" content: str = Field(description="The full plan content in markdown or text") structured_content: dict = Field(default={}, sa_type=JSON) # For UI rendering created_at: datetime = Field(default_factory=datetime.utcnow)