from sqlalchemy import Column, Integer, String, DateTime, JSON, ForeignKey, text from sqlalchemy.sql import func from app.db.base_class import Base class AuditLog(Base): __tablename__ = "audit_logs" __table_args__ = {"schema": "data"} id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("data.users.id", ondelete="SET NULL"), nullable=True) action = Column(String(100), nullable=False) # pl. "LOGIN", "REGISTER", "DELETE_ASSET" resource_type = Column(String(50)) # pl. "User", "Asset", "Organization" resource_id = Column(String(100)) details = Column(JSON, server_default=text("'{}'::jsonb")) ip_address = Column(String(45)) created_at = Column(DateTime(timezone=True), server_default=func.now())