"""Audit logging service -- records user actions for compliance and debugging.""" from sqlalchemy.orm import Session from app.models.audit import AuditLog def log_action( db: Session, user_id: int | None, action: str, entity_type: str | None = None, entity_id: int | None = None, old_values: dict | None = None, new_values: dict | None = None, ip_address: str | None = None, user_agent: str | None = None, ) -> None: """Persist a single audit-log entry and commit immediately.""" entry = AuditLog( user_id=user_id, action=action, entity_type=entity_type, entity_id=entity_id, old_values=old_values, new_values=new_values, ip_address=ip_address, user_agent=user_agent, ) db.add(entry) db.commit()