Initial commit
This commit is contained in:
60
backend/app/schemas.py
Normal file
60
backend/app/schemas.py
Normal file
@@ -0,0 +1,60 @@
|
||||
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
|
||||
Reference in New Issue
Block a user