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

View File

@@ -46,7 +46,11 @@ export const PLATFORM_NAV: NavSection[] = [
label: "Billing",
icon: CreditCard,
children: [
{ label: "Consumo" },
{
label: "Consumo",
href: "/platform/billing/consumo",
description: "Uso bruto de todos os tenants no mês corrente",
},
{
label: "Tarifas",
href: "/platform/billing/tarifas",
@@ -135,7 +139,11 @@ export const PLATFORM_NAV: NavSection[] = [
href: "/platform/sistema/auditoria",
description: "Log de eventos de todos os tenants",
},
{ label: "Configurações" },
{
label: "Configurações",
href: "/platform/sistema/configuracoes",
description: "Flags de segurança/infra do .env — somente leitura",
},
],
},
];