"""Audit log for tracking sensitive administrative actions.""" from app.extensions import db from datetime import datetime class AuditLog(db.Model): """Append-only log of critical admin actions for accountability.""" __tablename__ = 'audit_logs' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=True) action = db.Column(db.String(100), nullable=False) details = db.Column(db.Text, nullable=True) ip_address = db.Column(db.String(64), nullable=True) created_at = db.Column(db.DateTime, default=datetime.utcnow) user = db.relationship('User', foreign_keys=[user_id], backref='audit_logs') @staticmethod def record(user_id, action, details=None, ip_address=None): """Create a new audit log entry.""" entry = AuditLog( user_id=user_id, action=action, details=details, ip_address=ip_address, ) db.session.add(entry) db.session.commit() return entry