from datetime import datetime from sqlalchemy import Column, Integer, Float, DateTime, ForeignKey, Text, Boolean from sqlalchemy.orm import relationship from app.db.base_class import Base class ExamResult(Base): id = Column(Integer, primary_key=True, index=True) exam_id = Column(Integer, ForeignKey("exam.id"), nullable=False) student_id = Column(Integer, ForeignKey("student.id"), nullable=False) score = Column(Float, nullable=True) # Final score max_score = Column(Float, nullable=True) # Maximum possible score started_at = Column(DateTime, default=datetime.utcnow) completed_at = Column(DateTime, nullable=True) is_completed = Column(Boolean, default=False) remarks = Column(Text, nullable=True) # Relationships exam = relationship("Exam", back_populates="exam_results") student = relationship("Student", backref="exam_results") answers = relationship("StudentAnswer", back_populates="exam_result", cascade="all, delete-orphan") def __repr__(self): return f""