from __future__ import annotations from typing import Annotated from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from app.api.deps import get_db from app.schemas.audit_log import AuditLogRead from app.services.audit import AuditLogService router = APIRouter(prefix="/audit-logs") DbSession = Annotated[Session, Depends(get_db)] @router.get("", response_model=list[AuditLogRead]) def list_audit_logs( db: DbSession, resource_type: str | None = Query(default=None), resource_id: str | None = Query(default=None), action: str | None = Query(default=None), limit: int = Query(default=50, ge=1, le=200), ) -> list[AuditLogRead]: return AuditLogService(db).list_logs( resource_type=resource_type, resource_id=resource_id, action=action, limit=limit, )