2026-09-21 14:22:43 +08:00
|
|
|
from pydantic import BaseModel
|
|
|
|
|
from typing import Optional
|
|
|
|
|
from datetime import datetime
|
2026-09-21 18:46:42 +08:00
|
|
|
|
|
|
|
|
from sqlalchemy import BigInteger
|
|
|
|
|
from sqlalchemy.dialects.mssql import TINYINT
|
|
|
|
|
from sqlalchemy.dialects.mysql import VARCHAR
|
|
|
|
|
|
|
|
|
|
|
2026-09-21 14:22:43 +08:00
|
|
|
#===============老师表===================
|
|
|
|
|
#===============请求体模型================
|
|
|
|
|
class TeacherCreate(BaseModel):
|
2026-09-21 18:46:42 +08:00
|
|
|
teacher_no: Optional[int] = None
|
2026-09-21 14:22:43 +08:00
|
|
|
teacher_name: Optional[str] = None
|
|
|
|
|
email: Optional[str] = None
|
|
|
|
|
phone: Optional[str] = None
|
|
|
|
|
remark: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
class TeacherUpdate(BaseModel):
|
|
|
|
|
teacher_no: Optional[str] = None
|
|
|
|
|
teacher_name: Optional[str] = None
|
|
|
|
|
email: Optional[str] = None
|
|
|
|
|
phone: Optional[str] = None
|
|
|
|
|
remark: Optional[str] = None
|
|
|
|
|
|
2026-09-21 18:46:42 +08:00
|
|
|
#================响应体==================
|
|
|
|
|
class TeacherOut(BaseModel):
|
|
|
|
|
id: int
|
|
|
|
|
teacher_no: str
|
|
|
|
|
teacher_name: str
|
|
|
|
|
phone: Optional[str]
|
|
|
|
|
email: Optional[str]
|
|
|
|
|
remark: Optional[str]
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
|
|
|
|
is_deleted: int
|
|
|
|
|
#`orm_mode = True` 是 Pydantic v1 的配置项。开启之后,Pydantic 可以直接读取 SQLAlchemy
|
|
|
|
|
# 查询得到的 ORM 对象的属性,自动映射生成接口响应 JSON,不用手动把 ORM 对象转为字典。
|
|
|
|
|
# 这个配置只用在响应体 Out 模型,新增和修改的请求模型不需要。
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes=True
|
|
|
|
|
|
|
|
|
|
#=====班级老师中间表 class_teachers =========
|
|
|
|
|
class ClassTeachersCreate(BaseModel):
|
|
|
|
|
class_id: int
|
|
|
|
|
teacher_id: int
|
|
|
|
|
role: str
|
|
|
|
|
#=================响应体===================
|
|
|
|
|
class ClassTeacherOut(BaseModel):
|
|
|
|
|
id: int
|
|
|
|
|
class_id: int
|
|
|
|
|
teacher_id: int
|
|
|
|
|
role: str
|
|
|
|
|
created_at: datetime
|
|
|
|
|
updated_at: datetime
|
|
|
|
|
is_deleted: int
|
|
|
|
|
class Config:
|
|
|
|
|
from_attributes=True
|