Files
2026-09-21 17:39:16 +08:00

55 lines
1.8 KiB
Python

from pydantic import BaseModel, Field, ConfigDict
from datetime import datetime,date
from typing import Optional, List
class ClassCreate(BaseModel):
class_name: str = Field(..., max_length=20, description="班级名称,唯一")
head_teacher_id: int = Field(..., ge=1, description="班主任id")
counselor_id: Optional[int] = Field(None, description="顾问id")
create_time: Optional[datetime] = Field(None, description="开课时间,不传默认当前时间")
teacher_ids: Optional[List[int]] = Field(None, description="绑定授课老师id列表")
class ClassUpdateBase(BaseModel):
class_name: Optional[str] = Field(None, max_length=20, description="班级名称")
create_time: Optional[date] = Field(None, description="开课时间,格式 YYYY-MM-DD,不传默认当前日期")
counselor_id: Optional[int] = Field(None, description="顾问id")
class ClassHeadTeacherUpdate(BaseModel):
head_teacher_id: int = Field(..., ge=1, description="新的班主任id")
class ClassTeachersUpdate(BaseModel):
teacher_ids: List[int] = Field(..., description="新老师id列表")
class ClassDelete(BaseModel):
class_ids: List[int] = Field(..., min_length=1, description="班级id列表")
deleted: bool = Field(..., description="True 逻辑删除,False 恢复")
class TeacherSimple(BaseModel):
model_config = ConfigDict(from_attributes=True)
t_id: int
t_name: str
class ClassDetail(BaseModel):
model_config = ConfigDict(from_attributes=True)
class_id: int
class_name: str
head_teacher_id: int
counselor_id: Optional[int] = None
create_time: Optional[datetime] = None
class_delete: bool = False
teachers: List[TeacherSimple] = []
class ClassPageResult(BaseModel):
total: int
items: List[ClassDetail]
class BatchDeleteResult(BaseModel):
affected_count: int