from dataclasses import field from marshmallow_dataclass import dataclass from iti.applications.common.enums import StatusEnum from typing import ClassVar from iti.applications.common.utils.schema import BaseSchema, Pagination from apiflask import fields import datetime @dataclass(base_schema=BaseSchema) class SysConfigQuery(Pagination): """ 系统配置查询请求 """ keyword: str = field( metadata={ "required": False, "metadata": { "example": "系统配置", "description": "关键字(支持编码、名称 like查询)", }, }, default=None, ) code: str = field( metadata={ "required": False, "metadata": {"example": "SYSTEM_CONFIG", "description": "配置编码"}, }, default=None, ) name: str = field( metadata={ "required": False, "metadata": {"example": "系统配置", "description": "配置名称"}, }, default=None, ) type: str = field( metadata={ "required": False, "metadata": {"example": "SYSTEM", "description": "配置类型"}, }, default=None, ) status: StatusEnum = field( metadata={ "required": False, "by_value": True, "metadata": {"example": "enabled", "description": "状态"}, }, default=None, ) createdAt: list[datetime.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.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, ) Schema: ClassVar[BaseSchema] = BaseSchema # For the type check class SysConfigCreateRequest(BaseSchema): """ 创建系统配置请求 """ type: str = fields.String( metadata={"example": "SYSTEM", "description": "配置类型"}, required=True, ) name: str = fields.String( metadata={"example": "系统配置", "description": "配置名称"}, required=True, ) code: str = fields.String( metadata={"example": "SYSTEM_CONFIG", "description": "配置编码"}, required=True, ) value: str = fields.String( metadata={"example": "系统配置值", "description": "配置值"}, load_default=None, ) desc: str = fields.String( metadata={"example": "系统配置描述", "description": "配置描述"}, load_default=None, ) sort: int = fields.Integer( metadata={"example": 0, "description": "配置排序"}, load_default=0, ) status: StatusEnum = fields.Enum( StatusEnum, required=False, by_value=True, metadata={"example": "enabled", "description": "状态"}, load_default=StatusEnum.ENABLED, ) class SysConfigUpdateRequest(BaseSchema): """ 更新系统配置请求 """ type: str = fields.String( metadata={"example": "SYSTEM", "description": "配置类型"}, required=False, load_default=None, ) name: str = fields.String( metadata={"example": "系统配置", "description": "配置名称"}, required=False, load_default=None, ) code: str = fields.String( metadata={"example": "SYSTEM_CONFIG", "description": "配置编码"}, required=False, load_default=None, ) value: str = fields.String( metadata={"example": "系统配置值", "description": "配置值"}, required=False, load_default=None, ) desc: str = fields.String( metadata={"example": "系统配置描述", "description": "配置描述"}, required=False, load_default=None, ) sort: int = fields.Integer( metadata={"example": 0, "description": "配置排序"}, required=False, load_default=None, ) status: StatusEnum = fields.Enum( StatusEnum, by_value=True, metadata={"example": "enabled", "description": "状态"}, required=False, load_default=None, )