feat(frontend): Billing > Consumo (platform) + Sistema > Configurações — zera "em breve"

GET /billing/consumo agrega o mesmo uso bruto de /reports/consumo (tenant), só que
em loop por todos os tenants — nunca dinheiro, só quantidade (dinheiro é Billing >
Relatórios, já existia).

GET /platform/system-config: "Sistema > Configurações" nunca teve escopo definido na
especificação. Decisão desta implementação: painel somente leitura das flags de
segurança/infra que já existem como variável de ambiente (DIALER_SIMULATION/
ALLOW_REAL_OUTBOUND_CALLS, ESL configurado, storage provider, NODE_ENV) — nunca
editável por aqui, mudar exige editar o .env e reiniciar o serviço. Nunca expõe
segredo nenhum.

Com isto, todo item dos menus Platform e Tenant tem uma tela real por trás — zero
"em breve" restando em nav-data.ts nos dois lados.

Testado ponta a ponta: /billing/consumo batendo com os mesmos números já vistos em
Relatórios > Consumo/Quotas, /platform/system-config confirmado mostrando o valor
real do .env desta VM.

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 09:01:10 -03:00
parent cc80310cb5
commit fcf334c7c0
14 changed files with 347 additions and 2 deletions

27
TODO.md
View File

@@ -1657,6 +1657,33 @@ secao 96-103, 124, 169) + achado real de autorização em `/ai/models`
manual) e a tela de Custos mostrando o mesmo número — tudo removido
no final
## PHASE 46 — Platform > Billing > Consumo + Sistema > Configurações
(fecha a lista inteira de "em breve" do menu Platform, agente.md secao
169)
- [x] `GET /billing/consumo` — mesma agregação de `/reports/consumo`
(tenant), só que em loop por todos os tenants (`withTenantContext`
por tenant, mesmo padrão já usado em Quotas/ai-usage). Nunca
dinheiro, só quantidade bruta — dinheiro é Billing > Relatórios
(`BillingStatement`, já existia)
- [x] `GET /platform/system-config` — Sistema > Configurações nunca teve
escopo definido na especificação; decisão desta implementação:
painel **somente leitura** das flags de segurança/infra que já
existem como variável de ambiente (`DIALER_SIMULATION`/
`ALLOW_REAL_OUTBOUND_CALLS`, secao 186; ESL configurado; storage
provider; NODE_ENV), nunca editável por aqui — mudar exige editar
o `.env` e reiniciar o serviço. Nunca expõe segredo nenhum (senha,
chave, connection string), só o que já é público conhecimento de
quem administra a infra
- [x] Testado ponta a ponta: `/billing/consumo` batendo com os mesmos
números já vistos em Relatórios &gt; Consumo/Quotas (Acme com 2
dias-tronco), `/platform/system-config` confirmado mostrando o
valor real do `.env` (`DIALER_SIMULATION=true`,
`ALLOW_REAL_OUTBOUND_CALLS=false`, ESL configurado)
- [x] Com isto, **todo item do menu Platform tem tela real** — zero
`{ label: "X" }` sem `href` restando em `platform-shell/nav-data.ts`
(confirmado por grep). O menu Tenant já tinha zerado essa lista na
PHASE 42
---
## Riscos conhecidos