"""Journal append-only des opérations sensibles.""" from datetime import datetime, timezone from ...extensions import db class AuditLog(db.Model): __tablename__ = "audit_logs" id = db.Column(db.BigInteger, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey("users.id", ondelete="SET NULL"), index=True) username = db.Column(db.String(80), nullable=False, default="système") action = db.Column(db.String(16), nullable=False) endpoint = db.Column(db.String(160), nullable=True) path = db.Column(db.String(500), nullable=False) entity_type = db.Column(db.String(80), nullable=True, index=True) entity_id = db.Column(db.String(80), nullable=True, index=True) payload = db.Column(db.Text, nullable=True) status_code = db.Column(db.SmallInteger, nullable=False) ip_address = db.Column(db.String(64), nullable=True) created_at = db.Column( db.DateTime, nullable=False, index=True, default=lambda: datetime.now(timezone.utc).replace(tzinfo=None), )