from typing import List, Optional from sqlalchemy.orm import Session from app.crud.base import CRUDBase from app.models.question_option import QuestionOption from app.schemas.question_option import QuestionOptionCreate, QuestionOptionUpdate class CRUDQuestionOption(CRUDBase[QuestionOption, QuestionOptionCreate, QuestionOptionUpdate]): def get_by_question_id(self, db: Session, *, question_id: int) -> List[QuestionOption]: """Get all options for a specific question""" return db.query(self.model).filter(QuestionOption.question_id == question_id).all() def get_correct_option(self, db: Session, *, question_id: int) -> Optional[QuestionOption]: """Get the correct option for a question""" return ( db.query(self.model) .filter( QuestionOption.question_id == question_id, QuestionOption.is_correct ) .first() ) question_option = CRUDQuestionOption(QuestionOption)