feat: define all 8 SQLModel tables
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
35
app/models/exercise.py
Normal file
35
app/models/exercise.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""Exercise model for the exercise library catalog.
|
||||
|
||||
Each exercise belongs to a workout day and includes form cues.
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
|
||||
class Exercise(SQLModel, table=True):
|
||||
"""An exercise in the workout library.
|
||||
|
||||
Attributes:
|
||||
id: Primary key, auto-incremented.
|
||||
name: Exercise name (e.g., "DB Chest Press (Floor)").
|
||||
muscle_group: Target muscle group (e.g., "Chest", "Shoulders").
|
||||
workout_day: Which day this exercise belongs to (Push/Pull/Lower/Full Body).
|
||||
sets: Default number of sets.
|
||||
tempo: Tempo notation (e.g., "3-1-2" = 3s eccentric, 1s pause, 2s concentric).
|
||||
form_cues: Detailed form instructions.
|
||||
created_at: Timestamp when the record was created.
|
||||
"""
|
||||
|
||||
__tablename__ = "exercises"
|
||||
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
name: str = Field(index=True)
|
||||
muscle_group: str = Field(default="")
|
||||
workout_day: str = Field(index=True)
|
||||
sets: int = Field(default=3)
|
||||
tempo: str = Field(default="")
|
||||
form_cues: str = Field(default="")
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
Reference in New Issue
Block a user