30 lines
966 B
Python
30 lines
966 B
Python
import enum
|
|
|
|
from sqlalchemy import ForeignKey, Enum
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
|
from .model import Model
|
|
|
|
|
|
class StudentStatus(enum.Enum):
|
|
STUDY = "Обучается"
|
|
ACADEM = "Академ"
|
|
EXPLUSION = "Отчислен"
|
|
GRADUATED = "Выпущен"
|
|
|
|
|
|
class GradeBook(Model):
|
|
student_id: Mapped[int] = mapped_column(ForeignKey("users.id"), nullable=False)
|
|
student: Mapped["User"] = relationship("User", lazy="joined")
|
|
specialization_id: Mapped[int] = mapped_column(ForeignKey("specializations.id"), nullable=False)
|
|
specialization: Mapped["Specialization"] = relationship(
|
|
"Specialization", lazy="joined"
|
|
)
|
|
status: Mapped[StudentStatus] = mapped_column(
|
|
Enum(StudentStatus), nullable=False, default=StudentStatus.STUDY
|
|
)
|
|
group_id: Mapped[int] = mapped_column(ForeignKey("groups.id"))
|
|
group: Mapped["Group"] = relationship(
|
|
"Group", lazy="joined"
|
|
)
|