# 顾问模块:请求和响应格式,写法与原学生模块一致。 # 使用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