/
pa1ch
/
FitAssistant
Обзор
Документация
Войти
/
pa1ch
/
FitAssistant
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/models/program.py
39 строк
1 KB
Pavel Chugaev
Initial commit
30 май 2026, 00:24
30 май 2026, 00:24
af3a4bd
Код
Авторство
О чём код?
from typing import TYPE_CHECKING from sqlalchemy import ForeignKey, String from sqlalchemy.orm import Mapped, mapped_column, relationship from app.models.base import Base if TYPE_CHECKING: from app.models.exercise import Exercise class TrainingProgram(Base): __tablename__ = "training_programs" coach_id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"), index=True) name: Mapped[str] = mapped_column(String(200)) description: Mapped[str | None] exercises: Mapped[list["ProgramExercise"]] = relationship( back_populates="program", lazy="selectin", cascade="all, delete-orphan", ) class ProgramExercise(Base): __tablename__ = "program_exercises" program_id: Mapped[int] = mapped_column( ForeignKey("training_programs.id", ondelete="CASCADE"), index=True ) exercise_id: Mapped[int] = mapped_column(ForeignKey("exercises.id", ondelete="CASCADE")) sets: Mapped[int] reps_min: Mapped[int] reps_max: Mapped[int] day_of_week: Mapped[int | None] # 0=Mon, 6=Sun, null=any program: Mapped["TrainingProgram"] = relationship(back_populates="exercises") exercise: Mapped["Exercise"] = relationship(lazy="selectin")