perf: otimizar dashboard com indexes, cache e consolidação de queries (v1.3.0)
- Adicionar indexes compostos em lancamentos para queries frequentes - Eliminar ~20 JOINs com pagadores via helper cacheado getAdminPagadorId() - Consolidar queries: income-expense-balance (12→1), payment-status (2→1), categories (4→2) - Adicionar cache cross-request via unstable_cache com tag-based invalidation - Limitar scan de métricas a 24 meses - Deduplicar auth session por request via React.cache() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
20
CHANGELOG.md
20
CHANGELOG.md
@@ -5,6 +5,26 @@ Todas as mudanças notáveis deste projeto serão documentadas neste arquivo.
|
||||
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/),
|
||||
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
||||
|
||||
## [1.3.0] - 2026-02-06
|
||||
|
||||
### Adicionado
|
||||
|
||||
- Indexes compostos em `lancamentos`: `(userId, period, transactionType)` e `(pagadorId, period)`
|
||||
- Cache cross-request no dashboard via `unstable_cache` com tag `"dashboard"` e TTL de 120s
|
||||
- Invalidação automática do cache do dashboard via `revalidateTag("dashboard")` em mutations financeiras
|
||||
- Helper `getAdminPagadorId()` com `React.cache()` para lookup cacheado do admin pagador
|
||||
|
||||
### Alterado
|
||||
|
||||
- Eliminados ~20 JOINs com tabela `pagadores` nos fetchers do dashboard (substituídos por filtro direto com `pagadorId`)
|
||||
- Consolidadas queries de income-expense-balance: 12 queries → 1 (GROUP BY period + transactionType)
|
||||
- Consolidadas queries de payment-status: 2 queries → 1 (GROUP BY transactionType)
|
||||
- Consolidadas queries de expenses/income-by-category: 4 queries → 2 (GROUP BY categoriaId + period)
|
||||
- Scan de métricas limitado a 24 meses ao invés de histórico completo
|
||||
- Auth session deduplicada por request via `React.cache()`
|
||||
- Widgets de dashboard ajustados para aceitar `Date | string` (compatibilidade com serialização do `unstable_cache`)
|
||||
- `CLAUDE.md` otimizado de ~1339 linhas para ~140 linhas
|
||||
|
||||
## [1.2.6] - 2025-02-04
|
||||
|
||||
### Alterado
|
||||
|
||||
Reference in New Issue
Block a user