Commit Graph

27 Commits

Author SHA1 Message Date
Felipe Coutinho
4a88309709 chore: apply pending dashboard and UI updates 2026-02-28 15:34:54 +00:00
Felipe Coutinho
3f3488c8a0 refactor: remover funções, tipos e exports não utilizados
Remove createActionHandler, validateHashToken, decimalSchema,
optionalPeriodSchema, dateStringSchema, amountSchema, FeedbackDialog
standalone, CalendarEventType, parseDateKey, entre outros.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:40:59 +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
1b90be6b54 feat: topbar de navegação como experimento de UI (v1.7.0)
- Substitui header fixo por topbar com backdrop blur e navegação agrupada em 5 seções
- Adiciona FerramentasDropdown consolidando calculadora e modo privacidade
- NotificationBell expandida com orçamentos e pré-lançamentos
- Remove logout-button, header-dashboard e privacy-mode-toggle como componentes separados
- Logo refatorado com variante compact; topbar com links em lowercase
- Adiciona dependência radix-ui ^1.4.3
- Atualiza CHANGELOG para v1.7.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 15:43:14 +00:00
Felipe Coutinho
f50261208a feat(v1.4.0): design system semântico, correções de revalidação e melhorias de UX
- Adicionar tokens semânticos de estado (success, warning, info) no globals.css
- Migrar ~60+ componentes de cores hardcoded do Tailwind para tokens semânticos
- Unificar 3 arrays duplicados de cores de categorias em importação única
- Corrigir widgets de boleto/fatura que não atualizavam após pagamento
  (actions de fatura e antecipação não invalidavam cache do dashboard)
- Corrigir scroll em listas Popover+Command (modal prop)
- Adicionar link "detalhes" no card de orçamento para página da categoria
- Adicionar indicadores de tendência coloridos nos cards de métricas
- Estender cores de chart de 6 para 10
- Normalizar dark mode e remover tokens não utilizados

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:14:59 +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
a70a83dd9d feat(pagadores): adicionar widget no dashboard e atualizar avatares
- Novo widget de pagadores no dashboard com resumo de transações
- Substituir avatares SVG por PNG com melhor qualidade
- Melhorar seção de pagador no diálogo de lançamentos
- Adicionar ação para buscar pagadores por nome
- Atualizar componentes de seleção (cartões, categorias, contas)
- Melhorias no layout de ajustes e relatórios

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 01:44:50 +00:00
Felipe Coutinho
df1d149e4a refactor(sidebar): reorganizar navegação e aplicar formatação Biome
- Simplifica estrutura da sidebar combinando seções "Visão Geral" e "Gestão Financeira"
- Renomeia itens de relatórios para maior clareza ("Tendências", "Uso de Cartões")
- Aplica correções de formatação do Biome (ordenação de imports, quebras de linha)
- Remove código comentado não utilizado
- Adiciona migração 0014 do Drizzle

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:16:39 +00:00
Felipe Coutinho
2eafceb6d3 refactor: atualizar imports para os novos nomes de tabelas
- Atualizar imports em todos os arquivos que usavam os nomes antigos
- Corrigir referências para preferenciasUsuario, insightsSalvos, tokensApi, preLancamentos, antecipacoesParcelas, compartilhamentosPagador
2026-01-27 14:19:46 +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
540b250a47 feat(dashboard): adiciona widgets movíveis e ocultáveis
- Cria SortableWidget com @dnd-kit para drag-and-drop
- Cria DashboardGridEditable com modo de edição
- Cria WidgetSettingsDialog para gerenciar visibilidade
- Cria server actions para persistir preferências
2026-01-20 16:36:33 +00:00
Felipe Coutinho
9b08a8e020 style(dashboard): adicionar ícone ao link "Ver mais" no widget Top Estabelecimentos
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 13:40:21 +00:00
Felipe Coutinho
fd817683ca feat: implementar sistema de preferências do usuário e refatorar changelog
Adiciona sistema completo de preferências de usuário:
  - Cria tabela userPreferences no schema com campos disableMagnetlines, periodMonthsBefore e periodMonthsAfter
  - Implementa página de Ajustes com abas (Preferências, Alterar nome, Senha, E-mail, Deletar conta)
  - Adiciona componente PreferencesForm para configuração de magnetlines e períodos de exibição
  - Propaga periodPreferences para todos os componentes de lançamentos e calendário

  Refatora sistema de changelog:
  - Remove implementação anterior baseada em JSON estático
  - Adiciona nova página de changelog dinâmica em app/(dashboard)/changelog
  - Adiciona componente changelog-list.tsx
  - Remove arquivos obsoletos (changelog-notification, actions, data, utils, scripts)

  Adiciona controle de saldo inicial em contas:
  - Novo campo excludeInitialBalanceFromIncome em contas
  - Permite excluir saldo inicial do cálculo de receitas
  - Atualiza queries de lançamentos para respeitar esta configuração

  Melhorias adicionais:
  - Adiciona componente ui/accordion.tsx do shadcn/ui
  - Refatora formatPeriodLabel para displayPeriod centralizado
  - Propaga estabelecimentos para componentes de lançamentos
  - Remove variável DB_PROVIDER obsoleta do .env.example e documentação
  - Adiciona 6 migrações de banco de dados (0003-0008)
2026-01-03 14:18:03 +00:00
Felipe Coutinho
b767bd9599 feat(dashboard): adicionar widgets de despesas e receitas com gráfico
- Adiciona o widget de despesas por categoria com gráfico.
- Adiciona o widget de receitas por categoria com gráfico.
- Atualiza a configuração dos widgets para incluir novos componentes.
- Ajusta estilos e tamanhos de elementos nos widgets existentes.
2025-12-10 16:51:45 +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
cf5a0b7745 feat: implement category history widget and loading state for category history page 2025-11-28 13:42:21 +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
3ca495384c refactor: update icons and improve layout structure across components 2025-11-17 11:29:06 -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
Felipe Coutinho
a7ef1407dc refactor: melhorar a formatação e a legibilidade do código
- Ajusta a formatação da função toggleInstallmentSelection para melhor legibilidade.
- Refatora a busca de grupos de parcelas para uma única linha.
- Remove a importação não utilizada do ícone RiCalculatorLine no nav-link.
- Adiciona o ícone RiCalculatorLine de volta ao widget de análise de parcelas.
2025-11-16 17:08:30 -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