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:
Felipe Coutinho
2026-02-06 12:24:15 +00:00
parent 21fac52e28
commit 6f5c41a4cf
45 changed files with 3589 additions and 1219 deletions

View File

@@ -16,7 +16,8 @@ type TopExpensesWidgetProps = {
cardOnlyExpenses: TopExpensesData;
};
const formatTransactionDate = (date: Date) => {
const formatTransactionDate = (date: Date | string) => {
const d = date instanceof Date ? date : new Date(date);
const formatter = new Intl.DateTimeFormat("pt-BR", {
weekday: "short",
day: "2-digit",
@@ -24,7 +25,7 @@ const formatTransactionDate = (date: Date) => {
timeZone: "UTC",
});
const formatted = formatter.format(date);
const formatted = formatter.format(d);
// Capitaliza a primeira letra do dia da semana
return formatted.charAt(0).toUpperCase() + formatted.slice(1);
};