32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
"""WorkoutSession model for tracking completed workout sessions.
|
|
|
|
Each session ties a user to a workout day on a specific date.
|
|
"""
|
|
|
|
import datetime as dt
|
|
from typing import Optional
|
|
|
|
from sqlmodel import Field, SQLModel
|
|
|
|
|
|
class WorkoutSession(SQLModel, table=True):
|
|
"""A completed workout session.
|
|
|
|
Attributes:
|
|
id: Primary key, auto-incremented.
|
|
user_id: FK to users table.
|
|
workout_day_id: FK to workout_days table.
|
|
date: The date the workout was performed.
|
|
notes: Optional free-text notes about the session.
|
|
created_at: Timestamp when the record was created.
|
|
"""
|
|
|
|
__tablename__ = "workout_sessions"
|
|
|
|
id: Optional[int] = Field(default=None, primary_key=True)
|
|
user_id: int = Field(foreign_key="users.id", index=True)
|
|
workout_day_id: int = Field(foreign_key="workout_days.id")
|
|
date: dt.date = Field(default_factory=dt.date.today)
|
|
notes: Optional[str] = Field(default=None)
|
|
created_at: dt.datetime = Field(default_factory=dt.datetime.utcnow)
|