55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
# 顾问模块:请求和响应格式,写法与原学生模块一致。
|
||
# 使用Pydantic定义接口入参、出参模型,用于FastAPI接口的数据校验与序列化
|
||
from pydantic import BaseModel
|
||
from typing import Optional
|
||
|
||
|
||
# 创建顾问 请求模型:新增顾问时前端提交的数据结构
|
||
class AdvisorCreate(BaseModel):
|
||
# 顾问姓名(必填字段,创建时必须传入)
|
||
adv_name: str
|
||
# 顾问性别(选填,不传则为None)
|
||
adv_gender: Optional[str] = None
|
||
# 顾问联系电话(选填)
|
||
adv_phone: Optional[str] = None
|
||
# 顾问邮箱(选填)
|
||
adv_email: Optional[str] = None
|
||
# 顾问所属地区(选填)
|
||
adv_region: Optional[str] = None
|
||
|
||
|
||
# 更新顾问 请求模型:修改顾问信息时前端提交的数据结构
|
||
# 所有字段全部可选,支持局部更新(只传需要修改的字段)
|
||
class AdvisorUpdate(BaseModel):
|
||
# 顾问姓名,可选更新
|
||
adv_name: Optional[str] = None
|
||
# 顾问性别,可选更新
|
||
adv_gender: Optional[str] = None
|
||
# 顾问电话,可选更新
|
||
adv_phone: Optional[str] = None
|
||
# 顾问邮箱,可选更新
|
||
adv_email: Optional[str] = None
|
||
# 顾问地区,可选更新
|
||
adv_region: Optional[str] = None
|
||
|
||
|
||
# 顾问信息 响应模型:查询顾问信息,返回给前端的数据结构
|
||
class AdvisorOut(BaseModel):
|
||
# 顾问主键ID,数据库自增主键
|
||
adv_id: int
|
||
# 顾问姓名
|
||
adv_name: str
|
||
# 顾问性别
|
||
adv_gender: Optional[str] = None
|
||
# 顾问联系电话
|
||
adv_phone: Optional[str] = None
|
||
# 顾问邮箱
|
||
adv_email: Optional[str] = None
|
||
# 顾问所属地区
|
||
adv_region: Optional[str] = None
|
||
|
||
class Config:
|
||
# from_attributes = True:支持直接把SQLAlchemy ORM对象转为Pydantic模型
|
||
# 作用:ORM查询出来的数据库实体,可以直接赋值给AdvisorOut,自动读取属性
|
||
from_attributes = True
|