Files
student_manage_system/students/schema/students_request.py
T

84 lines
2.6 KiB
Python
Raw Normal View History

# students_schema:请求、响应的模型框架
from pydantic import BaseModel , Field , field_validator
from datetime import datetime
import enum
class SexEnum(enum.Enum):
m = '男'
f = '女'
# 查询
class StudentsQuery(BaseModel):
id:int | None = None
num:str | None = None
name:str | None = None
age:int | None = None
sex:SexEnum | None = None
home_Place:str | None = None
college:str | None = None
specialty:str | None = None
enrollment_time:datetime | None = None
graduate_time:datetime | None = None
education:str | None = None
# 外键字段
class_id:int | None = None
adnisor_id:int | None = None
# 额外字段
phone:str | None = None
class EducationEnum(enum.Enum):
zhuanke = '专科'
benke = '本科'
shuoshi = '硕士'
boshi = '博士'
# 新建
class StudentsResponse(BaseModel):
num:str = Field(..., min_length=1, max_length=50, description='学生编号' )
name:str = Field(..., min_length=1, max_length=50, description='学生姓名' )
age:int = Field(..., gt=0, lt=200, description='学生年龄')
sex:SexEnum
home_Place:str | None = None
college:str | None = None
specialty:str | None = None
enrollment_time:datetime | None = None
graduate_time:datetime | None = None
education:EducationEnum
# 外键字段
class_id:int = Field(..., gt=0, description='班级ID')
adnisor_id:int | None = None
# 额外字段
phone:str = Field(...,min_length=11,max_length=11,description='学生手机号')
# 更新
class StudentsUpdate(BaseModel):
id:int = Field(..., gt=0 , description='学生ID' )
num:str = Field(..., min_length=1, max_length=50, description='学生编号' )
name:str = Field(..., min_length=1, max_length=50, description='学生姓名' )
age:int = Field(..., gt=0, lt=200, description='学生年龄')
sex:SexEnum | None = None
home_Place:str | None = None
college:str | None = None
specialty:str | None = None
enrollment_time:datetime | None = None
graduate_time:datetime | None = None
education:str | None = None
# 外键字段
class_id:int = Field(..., gt=0, description='班级ID')
adnisor_id:int | None = None
# 额外字段
phone:str = Field(...,min_length=11,max_length=11,description='学生手机号')
# 删除
class StudentsDelete(BaseModel):
sid:int | None = None
student_name:str | None = None
student_phone: str | None = None
class_name:str | None = None
job_open_time:datetime | None = None
offer_issue_time:datetime | None = None
company_name:str | None = None
salary:int | None = None