diff --git a/schema/student_schema.py b/schema/student_schema.py new file mode 100644 index 0000000..c892209 --- /dev/null +++ b/schema/student_schema.py @@ -0,0 +1,58 @@ +from typing import Optional,List +from pydantic import BaseModel,Field +from datetime import date +from model.student_model import Sex +##================ =====请求体=============== +class StudentCreateRequest(BaseModel): + stu_id:str=Field(...,description="学生id") + class_id:Optional[str]=Field(None,description="学生班级id") + stu_name: str = Field(..., description="学生姓名") + native_place: Optional[str] = Field(None, description="籍贯") + graduate_school: Optional[str] = Field(None, description="毕业院校") + major: Optional[str] = Field(None, description="专业") + enroll_date: Optional[date] = Field(None, description="入学时间") + graduate_date: Optional[date] = Field(None, description="毕业时间") + education: Optional[str] = Field(None, description="学历") + advisor_no: Optional[str] = Field(None, description="顾问编号") + age: Optional[int] = Field(None, ge=0, description="年龄,不能负数") + gender: Optional[Sex] = Field(None, description="性别") +class StudentUpdateRequest(BaseModel): + stu_id:Optional[str]=None#学生id + class_id: Optional[str] = None # 学生班级 + stu_name: Optional[str] = None # 学生姓名 + native_place: Optional[str] = None # 籍贯 + graduate_school: Optional[str] = None # 毕业院校 + major: Optional[str] = None # 专业 + enroll_date: Optional[date] = None # 入学时间 + graduate_date: Optional[date] = None # 毕业时间 + education: Optional[str] = None # 学历 + advisor_no: Optional[str] = None # 顾问编号 + age: Optional[int] = Field(None, ge=0) # 年龄,不能负数 + gender: Optional[Sex] = Field(None, description="性别") # 性别''' +class StudentQuery(BaseModel): + stu_id: Optional[str] = None # 学生编号筛选 + stu_name: Optional[str] = None # 学生姓名筛选 + class_id: Optional[str] = None # 班级筛选 + page: int = Field(1, ge=1, description="页码,默认第1页") + page_size: int = Field(10, ge=1, le=100, description="每页条数,默认10条") +##=====================响应体=============== +class StudentResponse(BaseModel): + stu_id: str# 学生编号 + class_id: Optional[str]# 学生班级 + stu_name: str# 学生姓名 + native_place: Optional[str] # 籍贯 + graduate_school: Optional[str] # 毕业院校 + major: Optional[str]# 专业 + enroll_date: Optional[date] # 入学时间 + graduate_date: Optional[date] # 毕业时间 + education: Optional[str] # 学历 + advisor_no: Optional[str]# 顾问编号 + age: Optional[int]# 年龄 + gender: Optional[Sex] = Field(None, description="性别")# 性别 + is_deleted: bool# 逻辑删除标记 +# 分页列表响应体:查询学生列表时返回 +class StudentPageResponse(BaseModel): + total: int# 符合条件的总记录数 + page: int# 当前页码 + page_size: int# 每页数据条数 + items: List[StudentResponse] # 当前页学生数据列表 \ No newline at end of file