feat(frontend): Relatórios > Consumo (tenant)

GET /reports/consumo agrega os 2 ledgers imutáveis de uso (UsageEvent +
AIUsageRecord — os mesmos que o RatingEngine usa pra faturar) por meter/tipo no mês
corrente: chamadas, minutos, dias ativos, armazenamento de gravação, tokens de IA.
Nunca calcula valor em dinheiro (isso é billing/RatingEngine, platform-only) —
decisão deliberada pra não duplicar essa lógica fora dele. Devolve também os limites
do plano (maxMonthlyCalls/maxRecordingStorageGb) pra comparação.

Tela /app/relatorios/consumo reaproveita o InstrumentTile do dashboard, zeros
honestos em vez de esconder seção. Testado ponta a ponta contra o tenant Acme real
(2 dias-tronco já ledgerados aparecem certos, resto zerado por não ter chamada
rodada ainda).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
2026-08-30 08:22:34 -03:00
parent 2fb5010283
commit de0b632fc9
7 changed files with 196 additions and 1 deletions

View File

@@ -163,7 +163,11 @@ export const TENANT_NAV: NavSection[] = [
href: "/app/relatorios/campanhas",
description: "Leads, tentativas, taxas de atendimento e contato",
},
{ label: "Consumo" },
{
label: "Consumo",
href: "/app/relatorios/consumo",
description: "Uso bruto do mês — minutos, dias ativos, armazenamento, tokens de IA",
},
],
},
{