"""Audit log route.""" from fastapi import APIRouter, Depends from core import data_manager from api.deps import require_admin_session router = APIRouter(prefix="/api/audit", tags=["audit"]) @router.get("") def list_audit( search: str | None = None, action: str | None = None, limit: int = 500, session: dict = Depends(require_admin_session), ): log = data_manager.get_audit_log(limit=limit) if action and action != "All": log = [e for e in log if e.get("action") == action] if search: s = search.lower() log = [ e for e in log if s in str(e.get("details", "")).lower() or s in str(e.get("action", "")).lower() or s in str(e.get("user", "")).lower() or s in str(e.get("appointment_id", "")).lower() ] return log @router.get("/actions") def action_types(session: dict = Depends(require_admin_session)): log = data_manager.get_audit_log(limit=1000) return sorted({e.get("action", "") for e in log if e.get("action")})