You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
330 lines
9.0 KiB
Python
330 lines
9.0 KiB
Python
from marshmallow_dataclass import dataclass
|
|
from dataclasses import field
|
|
from iti.applications.common.enums import StatusEnum
|
|
from iti.applications.common.utils.schema import BaseSchema, Pagination
|
|
from datetime import datetime
|
|
from typing import ClassVar
|
|
from apiflask import fields
|
|
|
|
|
|
@dataclass(base_schema=BaseSchema)
|
|
class SysDictTypeQuery(Pagination):
|
|
"""
|
|
字典类型查询
|
|
"""
|
|
|
|
keyword: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {
|
|
"example": "示例名称",
|
|
"description": "关键字(支持名称、编码 like查询)",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
type_name: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "示例名称", "description": "字典类型名称"},
|
|
},
|
|
default=None,
|
|
)
|
|
type_code: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "USER", "description": "字典类型编码"},
|
|
},
|
|
default=None,
|
|
)
|
|
status: StatusEnum = field(
|
|
metadata={
|
|
"required": False,
|
|
"by_value": True,
|
|
"metadata": {"example": "enabled", "description": "状态"},
|
|
},
|
|
default=None,
|
|
)
|
|
createdAt: list[datetime] = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "createdAt[]",
|
|
"metadata": {
|
|
"example": ["2025-01-01 00:00:00", "2025-01-01 23:59:59"],
|
|
"description": "创建时间",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
updatedAt: list[datetime] = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "updatedAt[]",
|
|
"metadata": {
|
|
"example": ["2025-01-01 00:00:00", "2025-01-01 23:59:59"],
|
|
"description": "更新时间",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
withDataList: bool = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {
|
|
"example": False,
|
|
"description": "是否包含数据列表(默认不包含)",
|
|
},
|
|
},
|
|
default=False,
|
|
)
|
|
Schema: ClassVar[BaseSchema] = BaseSchema # For the type check
|
|
|
|
|
|
class SysDictTypeCreateRequest(BaseSchema):
|
|
"""
|
|
创建字典类型请求
|
|
"""
|
|
|
|
type_name = fields.String(
|
|
required=True,
|
|
metadata={"example": "示例名称", "description": "字典类型名称"},
|
|
)
|
|
type_code = fields.String(
|
|
required=True,
|
|
metadata={"example": "USER", "description": "字典类型编码"},
|
|
)
|
|
desc = fields.String(
|
|
required=False,
|
|
metadata={"example": "示例描述", "description": "字典类型描述"},
|
|
load_default=None,
|
|
)
|
|
sort = fields.Integer(
|
|
required=False,
|
|
metadata={"example": 0, "description": "字典类型排序"},
|
|
load_default=0,
|
|
)
|
|
status = fields.Enum(
|
|
StatusEnum,
|
|
by_value=True,
|
|
required=False,
|
|
metadata={"example": "enabled", "description": "状态"},
|
|
load_default=StatusEnum.ENABLED,
|
|
)
|
|
|
|
|
|
class SysDictTypeUpdateRequest(BaseSchema):
|
|
"""
|
|
更新字典类型请求
|
|
"""
|
|
|
|
type_name = fields.String(
|
|
required=False,
|
|
metadata={"example": "示例名称", "description": "字典类型名称"},
|
|
load_default=None,
|
|
)
|
|
type_code = fields.String(
|
|
required=False,
|
|
metadata={"example": "USER", "description": "字典类型编码"},
|
|
load_default=None,
|
|
)
|
|
desc = fields.String(
|
|
required=False,
|
|
metadata={"example": "示例描述", "description": "字典类型描述"},
|
|
load_default=None,
|
|
)
|
|
sort = fields.Integer(
|
|
required=False,
|
|
metadata={"example": 0, "description": "字典类型排序"},
|
|
load_default=None,
|
|
)
|
|
status = fields.Enum(
|
|
StatusEnum,
|
|
by_value=True,
|
|
required=False,
|
|
metadata={"example": "enabled", "description": "状态"},
|
|
load_default=None,
|
|
)
|
|
|
|
|
|
############################ 字典数据 ############################
|
|
@dataclass(base_schema=BaseSchema)
|
|
class SysDictDataQuery(Pagination):
|
|
"""
|
|
字典数据查询
|
|
"""
|
|
|
|
type_code: str = field(
|
|
metadata={
|
|
"required": True,
|
|
"metadata": {"example": "USER", "description": "字典类型编码"},
|
|
},
|
|
default=None,
|
|
)
|
|
|
|
keyword: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {
|
|
"example": "示例名称",
|
|
"description": "关键字(支持标签、编码 like查询)",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
code: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "1", "description": "字典数据编码"},
|
|
},
|
|
default=None,
|
|
)
|
|
label: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "管理员", "description": "字典数据标签"},
|
|
},
|
|
default=None,
|
|
)
|
|
status: StatusEnum = field(
|
|
metadata={
|
|
"required": False,
|
|
"by_value": True,
|
|
"metadata": {"example": "enabled", "description": "状态"},
|
|
},
|
|
default=None,
|
|
)
|
|
createdAt: list[datetime] = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "createdAt[]",
|
|
"metadata": {
|
|
"example": ["2025-01-01 00:00:00", "2025-01-01 23:59:59"],
|
|
"description": "创建时间",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
updatedAt: list[datetime] = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "updatedAt[]",
|
|
"metadata": {
|
|
"example": ["2025-01-01 00:00:00", "2025-01-01 23:59:59"],
|
|
"description": "更新时间",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
|
|
|
|
class SysDictDataCreateRequest(BaseSchema):
|
|
"""
|
|
创建字典数据请求
|
|
"""
|
|
|
|
type_code = fields.String(
|
|
required=True,
|
|
metadata={"example": "USER", "description": "字典类型编码"},
|
|
)
|
|
code = fields.String(
|
|
required=True,
|
|
metadata={"example": "1", "description": "字典数据编码"},
|
|
)
|
|
label = fields.String(
|
|
required=True,
|
|
metadata={"example": "管理员", "description": "字典数据标签"},
|
|
)
|
|
value = fields.String(
|
|
required=False,
|
|
metadata={"example": "管理员", "description": "字典数据值"},
|
|
load_default=None,
|
|
)
|
|
desc = fields.String(
|
|
required=False,
|
|
metadata={"example": "示例描述", "description": "字典数据描述"},
|
|
load_default=None,
|
|
)
|
|
sort = fields.Integer(
|
|
required=False,
|
|
metadata={"example": 0, "description": "字典数据排序"},
|
|
load_default=0,
|
|
)
|
|
status = fields.Enum(
|
|
StatusEnum,
|
|
by_value=True,
|
|
required=False,
|
|
metadata={"example": "enabled", "description": "状态"},
|
|
load_default=StatusEnum.ENABLED,
|
|
)
|
|
|
|
|
|
class SysDictDataUpdateRequest(BaseSchema):
|
|
"""
|
|
更新字典数据请求
|
|
"""
|
|
|
|
type_code = fields.String(
|
|
required=False,
|
|
metadata={"example": "USER", "description": "字典类型编码"},
|
|
load_default=None,
|
|
)
|
|
code = fields.String(
|
|
required=False,
|
|
metadata={"example": "1", "description": "字典数据编码"},
|
|
load_default=None,
|
|
)
|
|
label = fields.String(
|
|
required=False,
|
|
metadata={"example": "管理员", "description": "字典数据标签"},
|
|
load_default=None,
|
|
)
|
|
value = fields.String(
|
|
required=False,
|
|
metadata={"example": "管理员", "description": "字典数据值"},
|
|
load_default=None,
|
|
)
|
|
desc = fields.String(
|
|
required=False,
|
|
metadata={"example": "示例描述", "description": "字典数据描述"},
|
|
load_default=None,
|
|
)
|
|
sort = fields.Integer(
|
|
required=False,
|
|
metadata={"example": 0, "description": "字典数据排序"},
|
|
load_default=None,
|
|
)
|
|
status = fields.Enum(
|
|
StatusEnum,
|
|
by_value=True,
|
|
required=False,
|
|
metadata={"example": "enabled", "description": "状态"},
|
|
load_default=None,
|
|
)
|
|
|
|
|
|
@dataclass(base_schema=BaseSchema)
|
|
class SysDictDataBatchDeleteRequest(Pagination):
|
|
"""
|
|
批量删除字典数据请求
|
|
"""
|
|
|
|
ids: list[str] = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "ids[]",
|
|
"metadata": {
|
|
"example": ["1234567890", "1234567891"],
|
|
"description": "字典数据ID列表",
|
|
},
|
|
},
|
|
default=None,
|
|
)
|
|
type_code: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "USER", "description": "字典类型编码"},
|
|
},
|
|
default=None,
|
|
)
|
|
Schema: ClassVar[BaseSchema] = BaseSchema # For the type check
|