from pydantic import BaseModel from typing import Optional from datetime import datetime from ..models import LogModel class LogDto(BaseModel): """日志信息DTO""" id: Optional[int] = None username: str operation_type: str operation_desc: str operation_result: str operation_module: str operation_data: Optional[str] = None data_changes: Optional[str] = None operation_ip: str created_at: datetime @classmethod def from_model(cls, model: LogModel) -> 'LogDto': """从数据库模型创建DTO对象""" return cls( id=model.id, username=model.username, operation_type=model.operation_type, operation_desc=model.operation_desc, operation_result=model.operation_result, operation_module=model.operation_module, operation_data=model.operation_data, data_changes=model.data_changes, operation_ip=model.operation_ip, created_at=model.created_at ) def to_dict(self) -> dict: """转换为字典格式""" return self.model_dump() class Config: from_attributes = True