101 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# _*_ coding : UTF-8 _*_
# @Time : 2025/01/19 02:19
# @UpdateTime : 2025/01/19 02:19
# @Author : sonder
# @File : department.py
# @Software : PyCharm
# @Comment : 本程序
from datetime import datetime
from typing import Optional, List
from pydantic import BaseModel, Field
from schemas.common import BaseResponse, ListQueryResult
class DepartmentInfo(BaseModel):
"""
部门表基础模型。
"""
id: str = Field(..., description="主键")
create_by: str = Field(default="", description="创建者")
create_time: Optional[datetime] = Field(default=None, description="创建时间")
update_by: str = Field(default="", description="更新者")
update_time: Optional[datetime] = Field(default=None, description="更新时间")
name: str = Field(..., max_length=100, description="部门名称")
parent_id: Optional[str] = Field(default=None, max_length=36, description="父部门ID")
sort: int = Field(default=0, description="排序权重0最高")
phone: Optional[str] = Field(default=None, max_length=30, description="部门电话")
principal: str = Field(..., max_length=64, description="部门负责人")
email: Optional[str] = Field(default=None, max_length=128, description="部门邮箱")
remark: Optional[str] = Field(default=None, max_length=255, description="备注信息")
status: Optional[int] = Field(default=None, description="状态")
class Config:
json_schema_extra = {
"example": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"create_by": "admin",
"create_time": "2023-10-01T12:00:00",
"update_by": "admin",
"update_time": "2023-10-01T12:00:00",
"name": "研发部",
"parent_id": "",
"sort": 0,
"phone": "1234567890",
"principal": "张三",
"email": "dev@example.com",
"remark": "研发部门",
"status": 1
}
}
class GetDepartmentInfoResponse(BaseResponse):
"""
获取部门信息响应模型。
"""
data: DepartmentInfo = Field(default=None, description="响应数据")
class AddDepartmentParams(BaseModel):
"""
添加部门参数模型。
"""
name: str = Field(..., max_length=100, description="部门名称")
parent_id: Optional[str] = Field(default=None, max_length=36, description="父部门ID")
sort: int = Field(default=0, description="排序权重0最高")
phone: Optional[str] = Field(default=None, max_length=30, description="部门电话")
principal: str = Field(..., max_length=64, description="部门负责人")
email: Optional[str] = Field(default=None, max_length=128, description="部门邮箱")
remark: Optional[str] = Field(default=None, max_length=255, description="备注信息")
status: Optional[int] = Field(default=None, description="状态")
class Config:
json_schema_extra = {
"example": {
"name": "研发部",
"parent_id": "",
"sort": 0,
"phone": "1234567890",
"principal": "张三",
"email": "dev@example.com",
"remark": "研发部门",
"status": 1
}
}
class GetDepartmentListResult(ListQueryResult):
"""
获取部门列表结果模型。
"""
result: List[DepartmentInfo] = Field(default=[], description="部门列表")
class GetDepartmentListResponse(BaseResponse):
"""
获取部门列表响应模型。
"""
data: GetDepartmentListResult = Field(default=None, description="响应数据")