from sqlalchemy import Column, Integer, String, Text, ForeignKey, DateTime from sqlalchemy.sql import func from sqlalchemy.orm import relationship from app.db.session import Base from app.models.question import question_quiz class Quiz(Base): __tablename__ = "quizzes" id = Column(Integer, primary_key=True, index=True) title = Column(String(100), nullable=False) description = Column(Text, nullable=True) category_id = Column(Integer, ForeignKey("categories.id")) difficulty = Column(String(20), nullable=True) # easy, medium, hard created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) # Relationships category = relationship("Category", back_populates="quizzes") questions = relationship("Question", secondary=question_quiz, back_populates="quizzes") results = relationship("Result", back_populates="quiz", cascade="all, delete-orphan")