"""UserExerciseProgram model for per-user exercise programming. Links a user to an exercise with week 1 and week 4 rep/weight targets. """ from datetime import datetime from typing import Optional from sqlmodel import Field, SQLModel class UserExerciseProgram(SQLModel, table=True): """Per-user programming for a specific exercise. Attributes: id: Primary key, auto-incremented. user_id: FK to users table. exercise_id: FK to exercises table. wk1_reps: Week 1 target reps (string to support "30 sec" style). wk4_reps: Week 4 target reps. wk1_weight: Week 1 target weight (e.g., "30 lbs", "BW"). wk4_weight: Week 4 target weight. created_at: Timestamp when the record was created. updated_at: Timestamp of the last update. """ __tablename__ = "user_exercise_programs" id: Optional[int] = Field(default=None, primary_key=True) user_id: int = Field(foreign_key="users.id", index=True) exercise_id: int = Field(foreign_key="exercises.id", index=True) wk1_reps: str = Field(default="") wk4_reps: str = Field(default="") wk1_weight: str = Field(default="") wk4_weight: str = Field(default="") created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow)