"""audit_log 操作审计日志 ORM 模型(谁在何时做了什么,企业级合规留痕)。""" from __future__ import annotations from datetime import datetime from sqlalchemy import BigInteger, DateTime, String, Text, func from sqlalchemy.orm import Mapped, mapped_column from model.base import Base class AuditLog(Base): __tablename__ = "audit_log" __table_args__ = {"comment": "操作审计日志表(企业级合规留痕)"} id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) user_id: Mapped[int | None] = mapped_column(BigInteger) username: Mapped[str | None] = mapped_column(String(64)) module: Mapped[str] = mapped_column(String(32)) action: Mapped[str] = mapped_column(String(64)) target: Mapped[str | None] = mapped_column(String(128)) detail: Mapped[str | None] = mapped_column(Text) ip: Mapped[str | None] = mapped_column(String(64)) trace_id: Mapped[str | None] = mapped_column(String(32)) status: Mapped[str] = mapped_column(String(8), server_default="成功") create_time: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())