"""Audit trail API (read-only in bootstrap — append-only via services).""" from __future__ import annotations from typing import Optional from uuid import UUID from fastapi import APIRouter, Depends, Query from asf_domain import AuditEvent from .deps import audit_service from ...services import AuditService router = APIRouter() @router.get("", response_model=list[AuditEvent], summary="List audit events (tenant scoped, newest first)") async def list_audit( actor_id: Optional[UUID] = Query(None), resource_type: Optional[str] = Query(None), limit: int = Query(100, ge=1, le=500), offset: int = Query(0, ge=0), svc: AuditService = Depends(audit_service), ) -> list[AuditEvent]: return await svc.list( limit=limit, offset=offset, actor_id=actor_id, resource_type=resource_type )