from pydantic import BaseModel, Field from typing import List class StudentCreate(BaseModel): first_name: str = Field(..., min_length=1) age: int = Field(..., ge=8, le=12) grade: str class StudentRead(BaseModel): id: int first_name: str age: int grade: str class Config: from_attributes = True class ChatRequest(BaseModel): student_id: int message: str class ChatResponse(BaseModel): reply: str should_speak: bool = True class SkillProgress(BaseModel): code: str subject: str label: str mastery_score: float confidence: float evidence_count: int class ProgressResponse(BaseModel): student: StudentRead progress: List[SkillProgress] class AssessmentQuestionResponse(BaseModel): skill_code: str skill_label: str question: str class AssessmentAnswerRequest(BaseModel): student_id: int skill_code: str answer: str class AssessmentAnswerResponse(BaseModel): correct: bool feedback: str mastery_score: float