29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
"""
|
||
操作日志模型
|
||
"""
|
||
from sqlalchemy import Column, BigInteger, String, Integer, DateTime, SmallInteger, Text
|
||
from sqlalchemy.sql import func
|
||
from app.core.database import Base
|
||
|
||
|
||
class OperationLog(Base):
|
||
"""操作日志表模型"""
|
||
|
||
__tablename__ = "operation_logs"
|
||
|
||
id = Column(BigInteger, primary_key=True, autoincrement=True, comment="日志ID")
|
||
user_id = Column(BigInteger, index=True, comment="操作用户ID")
|
||
username = Column(String(50), comment="用户名")
|
||
operation_type = Column(String(50), nullable=False, comment="操作类型")
|
||
resource_type = Column(String(50), nullable=False, index=True, comment="资源类型")
|
||
resource_id = Column(BigInteger, index=True, comment="资源ID")
|
||
detail = Column(Text, comment="操作详情(JSON)")
|
||
ip_address = Column(String(50), comment="IP地址")
|
||
user_agent = Column(String(500), comment="用户代理")
|
||
status = Column(SmallInteger, default=1, comment="状态:0-失败 1-成功")
|
||
error_message = Column(Text, comment="错误信息")
|
||
created_at = Column(DateTime, server_default=func.now(), index=True, comment="操作时间")
|
||
|
||
def __repr__(self):
|
||
return f"<OperationLog(id={self.id}, operation_type='{self.operation_type}')>"
|