from src import db
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy import Integer, String, ForeignKey, Text, JSON
from typing import Dict

class QuestionTable(db.Model):
    __tablename__ = "question_table"
    
    id: Mapped[int] = mapped_column(Integer(), primary_key=True, autoincrement=True, nullable=False)
    subconcept_id: Mapped[int] = mapped_column(Integer(), ForeignKey("sub_concept.id", ondelete="CASCADE"), nullable=False)
    difficulty: Mapped[str] = mapped_column(String(50), nullable=False)
    question: Mapped[str] = mapped_column(Text, nullable=False)
    options: Mapped[Dict] = mapped_column(JSON, nullable=False)
    correct_answer: Mapped[str] = mapped_column(String(10), nullable=False)
    
    subconcept = relationship("SubConceptTable", back_populates="questions")