# from enum import StrEnum from pydantic import BaseModel, ConfigDict class GoogleModelID(): GEMINI_2_0_FLASH = "gemini-2.0-flash" GEMINI_2_5_FLASH_PREVIEW = "gemini-2.5-flash-preview" class OpenRouterModelID(): QWEN_3_14B_FREE = "openrouter/qwen/qwen3-14b:free" GPT_4_1_MINI = "openrouter/openai/gpt-4.1-mini" GPT_O4_MINI = "openrouter/openai/o4-mini" GROK_3_MINI_BETA = "openrouter/x-ai/grok-3-mini-beta" GROK_3_BETA = "openrouter/x-ai/grok-3-beta" class Question(BaseModel): model_config = ConfigDict(validate_by_name=True, validate_by_alias=True) task_id: str question: str file_name: str class Answer(BaseModel): task_id: str answer: str class QuestionAnswerPair(BaseModel): task_id: str question: str answer: str def get_answer(self) -> dict[str, str]: return {"task_id": self.task_id, "submitted_answer": self.answer} class Results(BaseModel): model_config = ConfigDict(from_attributes=True) username: str score: int correct_count: int total_attempted: int message: str timestamp: str