Uso e franquia
Implementado em backend/model/uso.rs e na tela /app/uso. A fatura é só uma estimativa calculada no navegador; o backend não cobra nada.
Objetivo
Medir o consumo de cada aplicativo contra a franquia mensal, avisar antes de estourar e mostrar quanto custaria o excedente.
Entradas e saídas
| Ponto | Descrição |
|---|---|
| Entrada | Aceitos e recusados de cada lote da ingestão |
| Saída | Uma linha de uso por aplicativo e por dia, avisos por e-mail e a fatura estimada |
| Próximo passo | Ajustar a franquia ou o comportamento ao estourar em Aplicativos |
Como o uso é contado
- Uma linha por aplicativo e por dia, somada a cada lote.
diaéAAAA-MM-DDecicloéAAAA-MM, ambos na data UTC do processamento. - Aceitos são só os eventos gravados pela primeira vez, sem
PULSO. - Recusados são os de tipo inválido, os acima de 500 no lote e os lotes barrados pelo limite por minuto ou pela franquia. Não entram na fatura.
Franquia
A franquia está estourada quando a soma de aceitos do ciclo atual é maior ou igual a franquia_mensal.
| Comportamento | O que acontece ao estourar |
|---|---|
COBRAR_EXCEDENTE | Continua ingerindo; o excedente entra na fatura estimada |
PARAR_INGESTAO | Recusa os lotes com 402 até o próximo ciclo |
Avisos por e-mail
Ao atingir 80% e 100% da franquia, o backend grava a faixa em aviso_ciclo e aviso_faixa e envia um e-mail pela Resend para o conta_email do aplicativo. A gravação só acontece se o ciclo mudou ou se a faixa subiu, então cada faixa gera um e-mail por ciclo. Sem RESEND_API_KEY o e-mail não sai.
Tela de uso
| Bloco | Cálculo |
|---|---|
| Incluídos | Soma das franquias dos aplicativos (ou só do filtrado) |
| Projeção | Consumidos ÷ dias decorridos × dias do mês |
| Excedente projetado | Projeção − incluídos, nunca negativo |
| Fatura estimada | Excedente ÷ 1.000.000 × R$ 5,00 |
O medidor fica âmbar a partir de 80% e vermelho a partir de 100%. A tela também quebra o consumo por aplicativo e permite Lançar consumo e Ajustar consumo do dia manualmente.