From ba4b9dadfc359625abd86f3410b43fcb4e01db8d Mon Sep 17 00:00:00 2001 From: Gustavo Monteiro Greco Date: Tue, 31 Mar 2026 17:49:59 -0300 Subject: [PATCH] =?UTF-8?q?docs:=20adiciona=20documentos=20para=20an=C3=A1?= =?UTF-8?q?lise=20do=20backend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TSK-11.1_Requisitos_Backend.docx | Bin 0 -> 24382 bytes .../analiseRequisitosBackend.md | 87 ++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 DOCS/analise_backend/TSK-11.1_Requisitos_Backend.docx create mode 100644 DOCS/analise_backend/analiseRequisitosBackend.md diff --git a/DOCS/analise_backend/TSK-11.1_Requisitos_Backend.docx b/DOCS/analise_backend/TSK-11.1_Requisitos_Backend.docx new file mode 100644 index 0000000000000000000000000000000000000000..a98ddbd244968b96fe3fb64d6bbc712eb2e6c759 GIT binary patch literal 24382 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 literal 0 HcmV?d00001 diff --git a/DOCS/analise_backend/analiseRequisitosBackend.md b/DOCS/analise_backend/analiseRequisitosBackend.md new file mode 100644 index 0000000..33f8661 --- /dev/null +++ b/DOCS/analise_backend/analiseRequisitosBackend.md @@ -0,0 +1,87 @@ +## Detalhamento dos Gráficos (Dashboard) +O sistema deve processar dados para 9 visualizações distintas, integrando séries temporais do BCB e resultados estocásticos. + +| ID | Tipo de Gráfico | Dados e Contexto | +| :--- | :--- | :--- | +| **GRF-01** | Linha | Saldo de Crédito SFN (Séries 20539, 20540, 20541) em nível nacional. | +| **GRF-02** | Linha + Barras | Contexto Macro: Selic (432), IPCA (433) e Inadimplência (21082) com eixo duplo. | +| **GRF-03** | Boxplot | Inadimplência por Região: Média histórica agrupada por macrorregião. | +| **GRF-04** | Barras | Inadimplência Atual: Último valor médio coletado por macrorregião. | +| **GRF-05** | Heatmap | Inadimplência Estadual: Matriz UF × Mês contemplando os últimos 24 meses. | +| **GRF-06** | Scatter | PF vs PJ por Estado: Dispersão da inadimplência atual por UF e região. | +| **GRF-07** | Linha | Estudo de Caso MG: Saldos de crédito e taxas de inadimplência específicas. | +| **GRF-08** | Barras | **Score IOI**: Ranking de oportunidade (0–10) ordenado por estado. | +| **GRF-09** | Histograma + KDE | Simulação Monte Carlo: Distribuição de perdas simuladas, VaR 95% e média. | + +--- + +## Arquitetura de Rotas Backend +A API expõe **23 rotas** organizadas sob o prefixo `/api/v1`. A autenticação é obrigatória (JWT) para a maioria dos módulos. + +### 1. Autenticação +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| POST | `/login` | Autentica usuário e gera JWT. | +| POST | `/logout` | Invalida o token na tabela `sessao`. | +| GET | `/me` | Retorna o perfil do usuário logado. | + +### 2. Estados e Regiões +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| GET | `/` | Lista os 27 estados (filtro por região opcional). | +| GET | `/:sigla` | Detalhes de um estado específico (ex: SP). | + +### 3. Gráficos Prontos +*Módulo de conveniência para o front-end (JSON estruturado).* +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| GET | `/credito-sfn` | Dados para o GRF-01 (Saldo Nacional). | +| GET | `/macro-contexto` | Dados para o GRF-02 (Selic/IPCA/Inadimplência). | +| GET | `/inadimplencia-regional` | Dados para os GRF-03 e GRF-04 (Regional). | +| GET | `/heatmap-estados` | Dados para o GRF-05 (Heatmap 24m). | +| GET | `/scatter-pf-pj` | Dados para o GRF-06 (Dispersão PF vs PJ). | +| GET | `/estudo-estado/:sigla` | Dados para o GRF-07 (Dashboard estadual). | +| GET | `/score-oportunidade` | Dados para o GRF-08 (Ranking IOI). | +| GET | `/monte-carlo/:id` (rota do módulo 5, apenas chamar internamente) | Dados para o GRF-09 (Distribuição Monte Carlo). | + +### 4. Ranking de Oportunidades +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| GET | `/` | Lista o ranking de estados ordenado pelo score IOI. | +| GET | `/:sigla` | Detalhamento dos componentes do score de um estado. | +| POST | `/recalcular` | Dispara o recálculo do IOI em batch. | + +### 5. Simulação Monte Carlo +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| POST | `/monte-carlo` | Executa a simulação com parâmetros customizados. | +| GET | `/:id` | Recupera o resultado de uma simulação salva. | +| GET | `/historico` | Lista simulações anteriores do usuário logado. | + +### 6. Assistente de IA +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| POST | `/consulta` | Envia pergunta e recebe análise baseada nos dados. | +| GET | `/historico` | Lista conversas passadas com a IA. | +| GET | `/consulta/:id` | Recupera uma interação específica. | + +### 7. ETL e Ingestão de Dados +| Método | Rota | Descrição | +| :--- | :--- | :--- | +| POST | `/executar` | Dispara a atualização completa via API do BCB. | +| GET | `/status` | Mostra a data da última atualização por categoria. | + +--- + +**Nota:** As rotas de Gráficos Prontos (Módulo 3) são atalhos. Elas evitam que o front-end tenha que fazer 10 requisições diferentes para montar o dashboard principal, o que melhora muito a percepção de velocidade para o cliente. + +--- + +## Lógica de Negócio e Cálculo de Score +O diferencial do backend é o processamento do **IOI (Índice de Oportunidade Inclusiva)** e o modelo de risco. + +* **Algoritmo de Score:** O cálculo depende de todos os estados (MinMax) e deve ser processado em batch. + * $Score\_Final = (s_{inadim} \times 0.60 + s_{tendencia} \times 0.40) \times 10$. +* **Simulação Monte Carlo:** Utiliza distribuição Log-normal para projetar perdas baseadas na volatilidade histórica. + * **Parâmetros:** Montante padrão de R$ 150M e LGD de 0.65. + * **Saídas:** Cálculo obrigatório de VaR 95% e VaR 99% para persistência. \ No newline at end of file