log.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from pydantic import BaseModel
  2. from typing import Optional
  3. from datetime import datetime
  4. from ..models import LogModel
  5. class LogDto(BaseModel):
  6. """日志信息DTO"""
  7. id: Optional[int] = None
  8. username: str
  9. operation_type: str
  10. operation_desc: str
  11. operation_result: str
  12. operation_module: str
  13. operation_data: Optional[str] = None
  14. data_changes: Optional[str] = None
  15. operation_ip: str
  16. created_at: datetime
  17. @classmethod
  18. def from_model(cls, model: LogModel) -> 'LogDto':
  19. """从数据库模型创建DTO对象"""
  20. return cls(
  21. id=model.id,
  22. username=model.username,
  23. operation_type=model.operation_type,
  24. operation_desc=model.operation_desc,
  25. operation_result=model.operation_result,
  26. operation_module=model.operation_module,
  27. operation_data=model.operation_data,
  28. data_changes=model.data_changes,
  29. operation_ip=model.operation_ip,
  30. created_at=model.created_at
  31. )
  32. def to_dict(self) -> dict:
  33. """转换为字典格式"""
  34. return self.model_dump()
  35. class Config:
  36. from_attributes = True