from dataclasses import field from marshmallow_dataclass import dataclass from iti.applications.common.utils.schema import BaseSchema, Pagination from typing import ClassVar import datetime from iti.applications.common.enums import LogType @dataclass(base_schema=BaseSchema) class LogQuery(Pagination): """ 日志查询请求 """ keyword: str = field( metadata={ "required": False, "metadata": {"example": "关键字", "description": "关键字"}, }, default=None, ) type: LogType = field( metadata={ "required": False, "by_value": True, "metadata": {"example": "LOGIN", "description": "日志类型"}, }, default=None, ) createdAt: list[datetime.datetime] = field( metadata={ "data_key": "createdAt[]", "required": False, "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 @dataclass(base_schema=BaseSchema) class LogBatchDeleteRequest: """ 批量删除日志请求 """ ids: list[str] = field( metadata={ "data_key": "ids[]", "required": False, "metadata": { "example": ["1234567890", "1234567891"], "description": "日志ID列表", }, }, default=None, ) type: LogType = field( metadata={ "required": False, "by_value": True, "metadata": {"example": "LOGIN", "description": "日志类型"}, }, default=None, ) Schema: ClassVar[BaseSchema] = BaseSchema # For the type check