Commit Graph

14 Commits

Author SHA1 Message Date
Felipe Coutinho
069d0759c6 refactor: reorganiza componentes compartilhados e caminhos do app 2026-03-06 13:57:40 +00:00
Felipe Coutinho
803e273538 fix: corrigir tipos e eliminar non-null assertions
Substitui non-null assertions (!) por type assertions ou optional
chaining com guards. Troca any por unknown/tipos explícitos.

- drizzle.config: DATABASE_URL! → as string
- use-form-state: Record<string, any> → Record<string, unknown>
- actions: catch (e: any) → catch (e), model tipado explicitamente
- pagadores/data: row: any → Record<string, unknown>
- note-dialog: result tipado explicitamente
- bulk-import: payload as any removido
- Map.get()! → optional chaining + guards em relatórios e dashboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:22:41 +00:00
Felipe Coutinho
6f5c41a4cf 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>
2026-02-06 12:24:15 +00:00
Felipe Coutinho
a7f63fb77a refactor: migrate from ESLint to Biome and extract SQL queries to data.ts
- Replace ESLint with Biome for linting and formatting
- Configure Biome with tabs, double quotes, and organized imports
- Move all SQL/Drizzle queries from page.tsx files to data.ts files
- Create new data.ts files for: ajustes, dashboard, relatorios/categorias
- Update existing data.ts files: extrato, fatura (add lancamentos queries)
- Remove all drizzle-orm imports from page.tsx files
- Update README.md with new tooling info

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 13:15:37 +00:00
Felipe Coutinho
47038ae687 fix: corrige timezone e seleção de parcelas na análise de parcelas
- Ajusta timezone em datas de vencimento para evitar dia anterior
  - Corrige bug ao selecionar parcelas individuais (React state)
  - Melhora UI: exibe Total/Pendente sempre, Selecionado inline
2025-11-29 18:26:28 +00:00
Felipe Coutinho
a34d92f3bd feat: aprimora a exibição do cartão de parcelas e ajusta a lógica de busca
- Melhora a apresentação do nome do grupo e do cartão no componente
  InstallmentGroupCard, utilizando um layout mais compacto.
- Altera a lógica de busca na função fetchInstallmentAnalysis para incluir
  lançamentos parcelados apenas do pagador com a função de admin.
2025-11-23 14:52:22 -03:00
Felipe Coutinho
cdf79600e9 refactor: filtrar grupos de parcelas com pelo menos uma parcela em aberto
Esta alteração melhora a função fetchInstallmentAnalysis ao adicionar um filtro
para garantir que apenas os grupos de parcelas com pelo menos uma parcela não
paga sejam retornados. Isso melhora a eficiência e a clareza dos dados
processados.
2025-11-16 18:18:13 -03:00
Felipe Coutinho
25d44d6b27 feat: adicionar suporte para exibir logo do cartão nas parcelas
- Inclui a propriedade `cartaoLogo` no tipo `InstallmentGroup` para
  armazenar o logo do cartão.
- Atualiza a função `fetchInstallmentAnalysis` para buscar e incluir
  o logo do cartão nos dados retornados.
- Modifica o componente `InstallmentGroupCard` para renderizar o logo
  do cartão, se disponível, ao lado do nome do cartão.
2025-11-16 17:35:55 -03:00
Claude
c1b4086724 refactor: remover implementação de logos de cartões
- Remover cartaoLogo do tipo InstallmentGroup
- Remover busca de logo na query
- Remover exibição de logo e ícone fallback no componente
- Simplificar interface mostrando apenas nome do grupo
2025-11-16 17:00:23 +00:00
Claude
3fdcfba407 refactor: adicionar logos de cartões e corrigir contagem de parcelas pendentes
- Exibir logo do cartão ao lado do nome da parcela na análise
- Corrigir contagem de "X pendentes" para excluir parcelas já pagas
- Adicionar cartaoLogo à query e tipo InstallmentGroup
2025-11-16 16:49:27 +00:00
Claude
f6bbb0d5e0 refactor: melhorar visualização e contagem de parcelas pagas
Ajustes finais na análise de parcelas:

- Corrigir contagem de parcelas pagas (agora conta isSettled corretamente)
- Estilização aprimorada para parcelas pagas:
  * Cores verdes do sistema (green-50, green-700, dark mode suportado)
  * Fundo verde claro com bordas verdes
  * Texto e valores em verde
  * Badge "Paga" com variant outline e cores verdes
  * Line-through com decoração verde semi-transparente
- Remover card "Resumo" lateral (informação já está no card principal)
- Remover título "Lançamentos Parcelados" da página
- Layout full-width sem grid lateral
- Remover imports não utilizados (Separator, AnalysisSummaryPanel)
2025-11-16 16:27:43 +00:00
Claude
4411d992fa refactor: ajustar feature de análise de parcelas
Melhorias na funcionalidade de análise de parcelas:

- Cálculo correto de vencimento baseado no dia de vencimento do cartão
- Identificação de parcelas pagas com indicador visual
- Parcelas pagas não podem ser selecionadas
- Remoção completa da funcionalidade de faturas (apenas parcelas)
- Layout mais compacto com espaçamentos reduzidos
- Botão "Análise" discreto ao lado do título do widget
- Card de resumo simplificado
- Tamanhos de fonte e ícones reduzidos
- Progress bar mais fina (h-1.5)
2025-11-16 16:15:43 +00:00
Claude
115cb8836c feat: adicionar página de análise de parcelas e faturas
Implementa uma nova funcionalidade que permite ao usuário visualizar
todas as parcelas abertas e faturas não pagas em uma única página,
respondendo à pergunta "quanto vou gastar se pagar tudo?".

Funcionalidades:
- Query para buscar lançamentos parcelados não antecipados
- Query para buscar faturas pendentes
- Página dedicada em /dashboard/analise-parcelas
- Seleção individual de parcelas e faturas
- Painel de resumo com breakdown de valores
- Link "Ver Análise Completa" no widget de parcelas
- UI responsiva com cards expansíveis
- Cálculos em tempo real dos totais selecionados
2025-11-16 15:49:05 +00:00
Felipe Coutinho
ea0b8618e0 feat: adição de novos ícones SVG e configuração do ambiente
- Adicionados ícones SVG para ChatGPT, Claude, Gemini e OpenRouter
- Implementados ícones para modos claro e escuro do ChatGPT
- Criado script de inicialização para PostgreSQL com extensão pgcrypto
- Adicionado script de configuração de ambiente que faz backup do .env
- Configurado tsconfig.json para TypeScript com opções de compilação
2025-11-15 15:49:36 -03:00