from typing import Optional from pydantic import BaseModel # Shared properties class StudentAnswerBase(BaseModel): exam_result_id: int question_id: int selected_option_id: Optional[int] = None text_answer: Optional[str] = None # Properties to receive via API on creation class StudentAnswerCreate(StudentAnswerBase): pass # Properties to receive via API on update class StudentAnswerUpdate(BaseModel): selected_option_id: Optional[int] = None text_answer: Optional[str] = None is_correct: Optional[bool] = None points_earned: Optional[float] = None class StudentAnswerInDBBase(StudentAnswerBase): id: int is_correct: Optional[bool] = None points_earned: float = 0.0 class Config: from_attributes = True # Additional properties to return via API class StudentAnswer(StudentAnswerInDBBase): pass