Source code for server.models.submission

from __future__ import annotations

from sqlalchemy import LargeBinary, ForeignKey, Integer, DateTime, String
from sqlalchemy.orm import Mapped, mapped_column, relationship
from server.models.timestamp import TimeStamp

from .base import Base


[docs]class Submission(Base): """ 'Submission' Model Class - Shapes the 'submission' table in the database submission_id: primary key team_uuid: foreign key submission_time file_txt Related tables: * team * submission_run_info NOTE: team_uuid is used to refer back to the team that made the submission. When retrieving a submission(s), a team can only access their own submissions """ __tablename__: str = 'submission' submission_id: Mapped[int] = mapped_column(Integer(), primary_key=True, autoincrement=True) team_uuid: Mapped[str] = mapped_column(String(), ForeignKey('team.team_uuid')) submission_time: Mapped[str] = mapped_column(TimeStamp(), nullable=False) file_txt: Mapped[str] = mapped_column(LargeBinary(), nullable=False) team: Mapped['Team'] = relationship(back_populates='submissions') submission_run_infos: Mapped[list['SubmissionRunInfo']] = relationship(back_populates='submission')