Files
open-school/backend/app/schemas.py
2026-04-05 07:35:28 +00:00

61 lines
1.0 KiB
Python

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