blob: 3170dbd386fc5992493963e967d2c4ccce3351b0 [file] [log] [blame] [edit]
from sqlalchemy import Column, BigInteger, Integer, Enum, Text, String, TIMESTAMP, ForeignKey, Index
from sqlalchemy.sql import func
from extensions import db # adjust if Base lives elsewhere
class Log(db.Model):
__tablename__ = 'logs'
__table_args__ = (
Index('user_id', 'user_id'),
Index('idx_logs_created', 'created_at'),
)
id = Column(BigInteger, primary_key=True, autoincrement=True, comment='日志ID')
user_id = Column(Integer, ForeignKey('users.id', ondelete='SET NULL'), comment='用户ID')
type = Column(Enum('access', 'error', 'behavior', 'system',
name='logs_type_enum'), nullable=False, comment='日志类型')
content = Column(Text, nullable=False, comment='日志内容')
ip = Column(String(45), nullable=True, comment='IP地址')
created_at = Column(TIMESTAMP, server_default=func.current_timestamp(),
nullable=True, comment='记录时间')