28 lines
1.1 KiB
Python
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',
|
|
)
|