| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, ConfigDict, Field
- class DepartmentCreateSchema(BaseModel):
- """创建部门请求"""
- name: str = Field(max_length=128, description="部门名称")
- code: Optional[str] = Field(default=None, max_length=64, description="部门编码")
- parent_id: Optional[str] = Field(default=None, description="上级部门ID")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人员工ID")
- sort_order: Optional[int] = Field(default=0, description="排序值(越大越靠前)")
- class DepartmentUpdateSchema(BaseModel):
- """更新部门请求"""
- name: Optional[str] = Field(default=None, max_length=128, description="部门名称")
- code: Optional[str] = Field(default=None, max_length=64, description="部门编码")
- parent_id: Optional[str] = Field(default=None, description="上级部门ID")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人员工ID")
- sort_order: Optional[int] = Field(default=None, description="排序值(越大越靠前)")
- status: Optional[str] = Field(default=None, description="状态")
- class DepartmentOutSchema(BaseModel):
- """部门响应模型"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- department_id: Optional[str] = Field(default=None, description="部门ID(业务主键)")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID")
- name: str = Field(description="部门名称")
- code: Optional[str] = Field(default=None, description="部门编码")
- parent_id: Optional[str] = Field(default=None, description="上级部门ID")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人员工ID")
- sort_order: int = Field(description="排序值")
- status: str = Field(description="状态")
- created_time: Optional[datetime] = Field(default=None, description="创建时间")
- updated_time: Optional[datetime] = Field(default=None, description="更新时间")
- class DepartmentTreeSchema(BaseModel):
- """部门树形结构响应"""
- model_config = ConfigDict(from_attributes=True)
- department_id: Optional[str] = Field(default=None, description="部门ID")
- name: str = Field(description="部门名称")
- code: Optional[str] = Field(default=None, description="部门编码")
- parent_id: Optional[str] = Field(default=None, description="上级部门ID")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人员工ID")
- sort_order: int = Field(description="排序值")
- status: str = Field(description="状态")
- children: list["DepartmentTreeSchema"] = Field(default_factory=list, description="子部门")
- class DepartmentMoveSchema(BaseModel):
- """移动部门请求"""
- parent_id: Optional[str] = Field(default=None, description="新的上级部门ID")
|