55 lines
1.8 KiB
Python
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 |