2026-09-21 22:34:34 +08:00
|
|
|
|
2026-09-22 12:46:31 +08:00
|
|
|
from pydantic import BaseModel, Field, field_validator
|
2026-09-21 16:53:39 +08:00
|
|
|
|
2026-09-21 12:24:56 +08:00
|
|
|
|
|
|
|
|
class GradeRequest(BaseModel):
|
2026-09-22 10:49:05 +08:00
|
|
|
stu_id:int = Field(description="学生编号")
|
|
|
|
|
exam_order:int = Field(description='考核序次')
|
|
|
|
|
score:float = Field(description='成绩')
|
2026-09-21 12:24:56 +08:00
|
|
|
|
2026-09-22 12:46:31 +08:00
|
|
|
@field_validator("score")
|
|
|
|
|
def check_score(cls, v):
|
|
|
|
|
if not (0 <= v <= 100):
|
|
|
|
|
raise ValueError("成绩必须在0~100之间")
|
|
|
|
|
return v
|
|
|
|
|
|
|
|
|
|
@field_validator("exam_order")
|
|
|
|
|
def check_exam_order(cls, v):
|
|
|
|
|
if v <= 0:
|
|
|
|
|
raise ValueError("考核序次必须大于0")
|
|
|
|
|
return v
|
|
|
|
|
|
2026-09-21 16:28:55 +08:00
|
|
|
class GradeResponse(BaseModel):
|
|
|
|
|
code: int = 200
|
|
|
|
|
detail: str = 'OK'
|
2026-09-22 10:49:05 +08:00
|
|
|
score_id: float
|
2026-09-21 21:40:48 +08:00
|
|
|
stu_id:int
|
2026-09-21 16:28:55 +08:00
|
|
|
exam_order:int
|
2026-09-21 21:40:48 +08:00
|
|
|
score:float
|
|
|
|
|
|