2026-09-14 10:23:36 +08:00
|
|
|
from pydantic import BaseModel, ConfigDict
|
2026-09-13 18:20:37 +08:00
|
|
|
from datetime import date
|
|
|
|
|
from typing import Optional, List
|
|
|
|
|
|
|
|
|
|
# ----------------学生----------------
|
|
|
|
|
class StudentCreate(BaseModel):
|
|
|
|
|
stu_name: str
|
|
|
|
|
native_place: Optional[str] = None
|
|
|
|
|
graduate_school: Optional[str] = None
|
|
|
|
|
major: Optional[str] = None
|
|
|
|
|
in_time: Optional[date] = None
|
|
|
|
|
out_time: Optional[date] = None
|
|
|
|
|
edu: Optional[str] = None
|
|
|
|
|
advisor_id: Optional[int] = None
|
|
|
|
|
stu_age: Optional[int] = None
|
|
|
|
|
stu_gender: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
class StudentResp(StudentCreate):
|
|
|
|
|
stu_id: int
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
|
|
|
|
|
|
|
|
|
# ----------------成绩----------------
|
|
|
|
|
class ScoreCreate(BaseModel):
|
2026-09-14 10:23:36 +08:00
|
|
|
stu_no: str
|
2026-09-13 18:20:37 +08:00
|
|
|
exam_order: int
|
|
|
|
|
score: float
|
|
|
|
|
|
|
|
|
|
class ScoreResp(ScoreCreate):
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
|
|
|
|
|
2026-09-14 10:23:36 +08:00
|
|
|
# 对外出参:成绩表现在直接用学号做主键,stu_no 就是表里的真实字段,
|
|
|
|
|
# 查到 ORM 对象直接读出来即可,不需要额外挂展示字段。
|
|
|
|
|
class ScoreOut(BaseModel):
|
|
|
|
|
stu_no: str
|
|
|
|
|
exam_order: int
|
|
|
|
|
score: float
|
|
|
|
|
|
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
2026-09-13 18:20:37 +08:00
|
|
|
# ----------------班级----------------
|
|
|
|
|
class ClassCreate(BaseModel):
|
|
|
|
|
start_time: Optional[date] = None
|
|
|
|
|
|
|
|
|
|
class ClassResp(ClassCreate):
|
|
|
|
|
class_id: int
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|
|
|
|
|
|
|
|
|
|
# ----------------老师----------------
|
|
|
|
|
class TeacherCreate(BaseModel):
|
|
|
|
|
t_name: str
|
|
|
|
|
t_gender: Optional[str] = None
|
|
|
|
|
t_email: Optional[str] = None
|
|
|
|
|
class_id: Optional[int] = None
|
|
|
|
|
role: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
class TeacherResp(TeacherCreate):
|
|
|
|
|
t_id: int
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes = True
|