"""Centralized audit logging for admin and destructive actions.""" from uuid import UUID from typing import Optional from sqlalchemy.ext.asyncio import AsyncSession from app.models.audit_log import AuditLog async def log_audit( db: AsyncSession, user_id: UUID, action: str, resource_type: str, resource_id: Optional[UUID] = None, details: Optional[dict] = None, ) -> None: """Record an audit log entry. Does not commit — piggybacks on the caller's commit.""" entry = AuditLog( user_id=user_id, action=action, resource_type=resource_type, resource_id=resource_id, details=details, ) db.add(entry)