from fastapi import APIRouter, Depends from admin_app.api.dependencies import get_audit_service, require_admin_permission from admin_app.api.schemas import AdminAuditEntryResponse, AdminAuditListResponse from admin_app.core import AuthenticatedStaffPrincipal from admin_app.services import AuditService from shared.contracts import AdminPermission # login/logout da API admin. router = APIRouter(prefix="/audit", tags=["audit"]) @router.get("/events", response_model=AdminAuditListResponse) def list_audit_events( audit_service: AuditService = Depends(get_audit_service), _: AuthenticatedStaffPrincipal = Depends( require_admin_permission(AdminPermission.VIEW_AUDIT_LOGS) ), ): events = audit_service.list_recent(limit=50) return AdminAuditListResponse( service="orquestrador-admin", events=[ AdminAuditEntryResponse( id=event.id, actor_staff_account_id=event.actor_staff_account_id, event_type=event.event_type, resource_type=event.resource_type, resource_id=event.resource_id, outcome=event.outcome, message=event.message, payload_json=event.payload_json, ip_address=event.ip_address, user_agent=event.user_agent, created_at=event.created_at, ) for event in events ], )