import datetime as dt from typing import Optional from sqlmodel import Field, SQLModel class DailyNote(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) user_id: int = Field(foreign_key="user.id", index=True) date: dt.date = Field(index=True) content: str = Field(default="", max_length=10000) mood: Optional[str] = None # "great"/"good"/"okay"/"bad"/"awful" energy_level: Optional[int] = None # 1–10 updated_at: dt.datetime = Field(default_factory=dt.datetime.utcnow) class CalendarEvent(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) user_id: int = Field(foreign_key="user.id", index=True) date: dt.date = Field(index=True) title: str description: Optional[str] = None event_type: str = "general" # "workout" | "supplement" | "general" color: Optional[str] = None start_time: Optional[str] = None # "HH:MM" is_completed: bool = False created_at: dt.datetime = Field(default_factory=dt.datetime.utcnow)