from datetime import datetime from typing import TYPE_CHECKING from sqlalchemy import DateTime, Float, ForeignKey, func from sqlalchemy.orm import Mapped, mapped_column, relationship from app.core.database.models.base import Base if TYPE_CHECKING: from app.core.database.models.exercise import ExerciseModel class ApproachModel(Base): __tablename__ = "approaches" id: Mapped[int] = mapped_column(primary_key=True) exercise_id: Mapped[int] = mapped_column( ForeignKey("exercises.id", ondelete="CASCADE"), index=True ) weight: Mapped[float] = mapped_column(Float) reps: Mapped[int] created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now() ) exercise: Mapped["ExerciseModel"] = relationship(back_populates="approaches")