48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
|
|
from datetime import datetime
|
||
|
|
from sqlalchemy import String, ForeignKey, Integer, DateTime
|
||
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||
|
|
|
||
|
|
from app.core.database import Base
|
||
|
|
|
||
|
|
|
||
|
|
class AssignmentProof(Base):
|
||
|
|
"""Файлы-доказательства для заданий (множественные пруфы)"""
|
||
|
|
__tablename__ = "assignment_proofs"
|
||
|
|
|
||
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
||
|
|
assignment_id: Mapped[int] = mapped_column(
|
||
|
|
ForeignKey("assignments.id", ondelete="CASCADE"),
|
||
|
|
index=True
|
||
|
|
)
|
||
|
|
file_path: Mapped[str] = mapped_column(String(500)) # Путь к файлу в хранилище
|
||
|
|
file_type: Mapped[str] = mapped_column(String(20)) # image или video
|
||
|
|
order_index: Mapped[int] = mapped_column(Integer, default=0) # Порядок отображения
|
||
|
|
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
||
|
|
|
||
|
|
# Relationships
|
||
|
|
assignment: Mapped["Assignment"] = relationship(
|
||
|
|
"Assignment",
|
||
|
|
back_populates="proof_files"
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
class BonusAssignmentProof(Base):
|
||
|
|
"""Файлы-доказательства для бонусных заданий (множественные пруфы)"""
|
||
|
|
__tablename__ = "bonus_assignment_proofs"
|
||
|
|
|
||
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
||
|
|
bonus_assignment_id: Mapped[int] = mapped_column(
|
||
|
|
ForeignKey("bonus_assignments.id", ondelete="CASCADE"),
|
||
|
|
index=True
|
||
|
|
)
|
||
|
|
file_path: Mapped[str] = mapped_column(String(500)) # Путь к файлу в хранилище
|
||
|
|
file_type: Mapped[str] = mapped_column(String(20)) # image или video
|
||
|
|
order_index: Mapped[int] = mapped_column(Integer, default=0) # Порядок отображения
|
||
|
|
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
||
|
|
|
||
|
|
# Relationships
|
||
|
|
bonus_assignment: Mapped["BonusAssignment"] = relationship(
|
||
|
|
"BonusAssignment",
|
||
|
|
back_populates="proof_files"
|
||
|
|
)
|