Feature: серверная часть, ФИО и результаты теста в БД; правка ответа эскалация 80%

Made-with: Cursor
This commit is contained in:
2026-03-16 07:46:37 +00:00
parent 2de0d2cfbd
commit 05388b2ba6
14 changed files with 1971 additions and 48 deletions

30
backend/app/models.py Normal file
View File

@@ -0,0 +1,30 @@
"""Модели БД."""
import uuid
from datetime import datetime, timezone
from sqlalchemy import Column, String, Integer, Boolean, DateTime, Numeric
from app.database import Base
def gen_uuid():
return str(uuid.uuid4())
def utc_now():
return datetime.now(timezone.utc)
class Participant(Base):
"""Участник обучения: ФИО, старт, завершение теста, результат."""
__tablename__ = "participants"
id = Column(String(36), primary_key=True, default=gen_uuid)
fio = Column(String(500), nullable=False, index=True)
started_at = Column(DateTime(timezone=True), nullable=False, default=utc_now)
completed_at = Column(DateTime(timezone=True), nullable=True)
score = Column(Integer, nullable=True)
total_questions = Column(Integer, nullable=True)
percent = Column(Numeric(5, 2), nullable=True)
passed = Column(Boolean, nullable=True)