audit_log.py 683 B

123456789101112131415161718
  1. from sqlalchemy import Column, DateTime, String, Text, text
  2. from sqlalchemy.dialects.postgresql import UUID
  3. from sqlalchemy.sql import func
  4. from sqlalchemy.types import JSON
  5. from backend.app.db.base import Base
  6. class AuditLog(Base):
  7. __tablename__ = "audit_logs"
  8. id = Column(UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"))
  9. actor_id = Column(UUID(as_uuid=True))
  10. action = Column(String, nullable=False)
  11. target_type = Column(String, nullable=False)
  12. target_id = Column(UUID(as_uuid=True))
  13. detail = Column(JSON)
  14. ip = Column(Text)
  15. created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)