psb_hack/api/app/domain/models/solutions.py

28 lines
1.1 KiB
Python

from typing import List
from sqlalchemy import String, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.domain.models.base import RootTable
class Solution(RootTable):
__tablename__ = 'solutions'
answer_text: Mapped[str] = mapped_column(nullable=True)
assessment: Mapped[int] = mapped_column(nullable=True)
assessment_autor_id: Mapped[int] = mapped_column(ForeignKey('users.id'), nullable=True)
task_id: Mapped[int] = mapped_column(ForeignKey('tasks.id'), nullable=False)
student_id: Mapped[int] = mapped_column(ForeignKey('users.id'), nullable=False)
assessment_autor: Mapped['User'] = relationship('User', back_populates='assessments',
foreign_keys=[assessment_autor_id], lazy='joined')
student: Mapped['User'] = relationship('User', back_populates='my_solutions', foreign_keys=[student_id])
files: Mapped[List['SolutionFile']] = relationship('SolutionFile', back_populates='solution')
solution_comments: Mapped[List['SolutionComment']] = relationship(
'SolutionComment',
back_populates='solution',
)