from pydantic import BaseModel from typing import Optional, List from datetime import date, datetime class QuestionBase(BaseModel): question_text: str correct_answer: str alt_answers: List[str] = [] difficulty: int fun_fact: Optional[str] = None class QuestionCreate(QuestionBase): category_id: int class QuestionUpdate(BaseModel): question_text: Optional[str] = None correct_answer: Optional[str] = None alt_answers: Optional[List[str]] = None difficulty: Optional[int] = None fun_fact: Optional[str] = None status: Optional[str] = None date_active: Optional[date] = None class QuestionResponse(QuestionBase): id: int category_id: int points: int time_seconds: int date_active: Optional[date] status: str created_at: datetime class Config: from_attributes = True class QuestionForGame(BaseModel): id: int category_id: int question_text: str difficulty: int points: int time_seconds: int class Config: from_attributes = True class AIGenerateRequest(BaseModel): category_id: int difficulty: int count: int = 5 class AIValidateRequest(BaseModel): question_id: int player_answer: str