Commit Graph

58 Commits

Author SHA1 Message Date
marcoitaloesp-ai
777fb32626
v1.43.18 - Hard delete de templates recorrentes 2025-12-16 18:04:59 +00:00
marcoitaloesp-ai
91478d5026
v1.43.17 - Revisão completa: 170 categorias com contraste perfeito 2025-12-16 17:17:00 +00:00
marcoitaloesp-ai
b1ab1ec314
v1.43.16 - Padronização global de contraste em TODAS as categorias 2025-12-16 17:14:40 +00:00
marcoitaloesp-ai
b1b111333c
v1.43.15 - Melhor contraste para categoria Moradia e subcategorias 2025-12-16 17:13:19 +00:00
marcoitaloesp-ai
76978fbcfc
v1.43.14 - FIX: Tamanho de fonte dos badges de categoria em Recorrentes e Futuras 2025-12-16 17:08:45 +00:00
marcoitaloesp-ai
e29eacf5c7
v1.43.13 - Padronização visual de badges em relatórios 2025-12-16 17:03:14 +00:00
marcoitaloesp-ai
891df889ec
v1.43.12 - FIX: Badge de Débito em vermelho nas transações recorrentes 2025-12-16 16:57:17 +00:00
marcoitaloesp-ai
efbd5e8aa2
v1.43.11 - Filtro de período personalizável em relatórios 2025-12-16 16:47:03 +00:00
marcoitaloesp-ai
30d58c375c
v1.43.10 - FIX: Drill-down incluindo categoria pai nas subcategorias 2025-12-16 16:40:21 +00:00
marcoitaloesp-ai
bb06ca8fae
v1.43.9 - Drill-down de 3 níveis em Centros de Custo (Centro → Categoria → Subcategoria) 2025-12-16 15:34:02 +00:00
marcoitaloesp-ai
db87da95c1
FIX: Drill-down de categorias agora recarrega corretamente
- Adicionado selectedCategory nas dependências do useCallback
- Criado useEffect separado para recarregar quando categoria muda
- Removido loadData() dos handlers (agora feito pelo useEffect)

Isso resolve o problema de estado assíncrono onde setSelectedCategory
não atualizava antes de loadData() ser chamado.
2025-12-16 15:17:46 +00:00
marcoitaloesp-ai
bdfcc8f60b
FIX v1.43.8 - Corrigido agrupamento de subcategorias
A query padrão agora agrupa por categoria pai usando COALESCE(c.parent_id, c.id),
somando as transações de todas as subcategorias.

Antes: Transações em subcategorias (Supermercado, Restaurantes) não apareciam
Agora: Alimentação mostra total de Supermercado + Restaurantes + todas subcategorias
2025-12-16 15:11:50 +00:00
marcoitaloesp-ai
7b9345dc80
v1.43.8 - Drill-down de subcategorias em relatórios
ADDED:
- Relatório Por Categoria agora suporta drill-down clicável
- Clicar em categoria pai exibe gráfico com suas subcategorias
- Botão Voltar para retornar às categorias principais
- Hover visual em linhas de tabela e cards clicáveis
- Backend aceita parent_id como parâmetro em /reports/by-category

CHANGED:
- Backend: query padrão mostra apenas categorias pai (parent_id IS NULL)
- Backend: nova query para subcategorias quando parent_id é fornecido
- Frontend: estado selectedCategory para rastrear navegação
- Frontend: onClick handlers em gráfico, tabela e cards

TRANSLATION:
- pt-BR: Distribuição de Subcategorias
- es: Distribución de Subcategorías
- en: Subcategory Distribution
2025-12-16 15:07:44 +00:00
marcoitaloesp-ai
b0724d7b2c
Fix: Garantir herança de cor em subcategorias
- Usar displayColor ao passar cor para filhos (não category.color)
- Fallback para cor padrão se categoria não tiver cor
- Garante que todas as subcategorias usem a mesma cor da categoria pai
2025-12-16 13:20:02 +00:00
marcoitaloesp-ai
1637e5da0c
v1.43.6 - Modal de detalhes Liabilities otimizado para mobile
- Modal fullscreen mobile, xl desktop
- Summary cards: Grid 2x2 mobile, fontes compactas
- Taxas: Grid 3 colunas com labels curtos (Mensal/Anual/Total)
- Progress bar: 12px mobile, fontes reduzidas
- Parcelas: Cards layout mobile substituindo tabela
- Cards incluem: status, valores, juros, taxas, reconciliação, botões
- Footer: Botão full-width mobile
- i18n: Adicionadas traduções 'monthly', 'annual', 'total'
2025-12-16 13:02:58 +00:00
marcoitaloesp-ai
454ef516f4
Fix: Adicionar chave i18n 'common.import' faltante em pt-BR e es 2025-12-16 12:58:31 +00:00
marcoitaloesp-ai
d84da4b6b7
v1.43.5 - Otimização mobile da página Liabilities
- Header responsivo: flex-column mobile, botão full-width
- Summary cards: Grid 2x2 mobile, fontes compactas (0.65-0.9rem)
- Filtros: Layout 50/50 sem label em mobile
- Cards contratos: col-12 mobile, padding reduzido, fontes ajustadas
- Progress bar: 6px mobile vs 8px desktop
- Botões e valores: fontes menores (0.75rem) para melhor legibilidade
2025-12-16 12:56:50 +00:00
marcoitaloesp-ai
5f3bf18b99
v1.43.4 - Padronização de badges e botões em todo o sistema
- Badges: Estilo translúcido uniforme (bg-opacity-25 + text-color) via CSS global
- Afetados: RecurringTransactions, Accounts, Categories, TransactionsByWeek
- Widgets: UpcomingWidget, OverdueWidget, CalendarWidget, OverpaymentsAnalysis
- Botões: Estilo outline padronizado (btn-outline-*) em RecurringTransactions
- Simplificação: Remover classes redundantes dos JSX
2025-12-16 12:48:08 +00:00
marcoitaloesp-ai
9800f987df
v1.43.3 - Mobile: Transações + CategorySelector corrigido 2025-12-16 12:32:15 +00:00
marcoitaloesp-ai
be7bed5c99
v1.43.2 - Mobile: Contas Passivo otimizadas 2025-12-16 11:43:59 +00:00
marcoitaloesp-ai
a244632e0a
v1.43.1 - Fix: Espaços em branco mobile eliminados + Textos compactos 2025-12-16 11:32:44 +00:00
marcoitaloesp-ai
e753c65cf0
v1.43.0 - Mobile UX: Widgets Projeção e Sobrepagamentos otimizados 2025-12-16 10:59:25 +00:00
marcoitaloesp-ai
bc47071fd8
docs: Atualizar README.md com features mobile v1.42.0 2025-12-16 10:15:01 +00:00
marcoitaloesp-ai
1186faca3c
v1.42.0 - Mobile UX: Navegação entre semanas no calendário + Widgets colapsáveis consistentes 2025-12-16 10:12:47 +00:00
marcoitaloesp-ai
3ba4bed1c4
🎨 v1.40.0 - Sidebar Mobile Overlay: UX Reimaginada
Substituída sidebar comprimida por overlay slide-in moderna:

MOBILE (<768px):
- Sidebar ESCONDIDA por padrão (left: -100%)
- Conteúdo em tela cheia (app-main margin-left: 0, width: 100%)
- Hamburger menu (☰) 44x44px no header
- Click hamburger: sidebar slide-in de 280px sobre conteúdo
- Backdrop escuro (rgba(0,0,0,0.5)) para fechar ao clicar fora
- Animação: cubic-bezier(0.4, 0, 0.2, 1) 0.3s
- Shadow: 4px 0 12px rgba(0,0,0,0.5) quando aberta
- Classe .mobile-open para estado aberto
- Auto-close ao redimensionar para desktop

DESKTOP (>=769px):
- Mantém comportamento atual (sidebar fixa colapsável)
- Hamburger e backdrop escondidos
- Toggle colapsa/expande (não esconde)

COMPONENTE (Layout.jsx):
- Estado sidebarOpen (mobile) separado de sidebarCollapsed (desktop)
- isMobile() helper para detectar <768px
- toggleSidebar() inteligente (mobile: open/close | desktop: collapse/expand)
- handleBackdropClick() fecha sidebar mobile
- useEffect cleanup ao resize

CSS:
- @media (max-width: 768px) com sidebar overlay
- @media (min-width: 769px) esconde mobile-only elements
- Removidas regras conflitantes de sidebar 56px/50px
- Safe area: padding-left/right 0 em body para permitir overlay
- Touch target hamburger: 44x44px com hover effect

Deploy: frontend/dist
2025-12-16 08:35:10 +00:00
marcoitaloesp-ai
db82316461
🔧 v1.39.2 - FIX CRÍTICO: Responsividade iPhone forçada
CSS anterior não aplicava devido a conflitos de especificidade.
Adicionado regras com maior prioridade em TODOS estilos críticos:

SIDEBAR MOBILE (<768px):
- width: 60px forçado
- app-main margin-left: 60px forçado
- Texto/logos escondidos (display/opacity/visibility none)
- Links centralizados, padding 0.75rem

SIDEBAR ULTRA-COMPACTA (<430px):
- width: 56px forçado
- app-main margin-left: 56px forçado

SIDEBAR LANDSCAPE:
- width: 50px forçado
- app-main margin-left: 50px forçado

LAYOUT OTIMIZADO:
- Cards: padding 0.5-0.75rem reduzido
- Containers: padding 0.5rem
- Row margins: -0.25rem para aproveitar espaço
- Modais: margin 0.5rem, max-width otimizada
- Tabelas: font 0.8rem, padding ultra-compacto

SAFE AREAS:
- app-sidebar: padding-top/bottom com env()
- app-main: padding-bottom com env()
- Modais: margins com calc()

PWA STANDALONE:
- overscroll-behavior none
- sidebar position fixed, overflow-y auto

Deploy: frontend/dist completamente substituído
2025-12-16 08:29:57 +00:00
marcoitaloesp-ai
2e45f29a06
🎨 v1.39.1 - Responsividade otimizada para iPhone/iOS
Otimizações específicas para melhorar UX em dispositivos iOS:

VIEWPORT & SAFE AREAS:
- viewport-fit=cover para suporte a notch/Dynamic Island
- user-scalable=no para prevenir zoom acidental
- Safe area insets em body, navbar e modais
- @supports padding: max() para compatibilidade

TOUCH TARGETS (Apple HIG):
- Botões mínimos 44x44px
- touch-action: manipulation (desabilita zoom duplo-toque)
- tap-highlight otimizado (azul translúcido)

INPUTS & FORMS:
- font-size 16px para prevenir zoom automático no iOS
- -webkit-appearance: none (reset iOS)
- border-radius fixo (iOS reseta)

SCROLL & PERFORMANCE:
- overscroll-behavior-y: none (sem bounce)
- -webkit-overflow-scrolling: touch (scroll suave)
- Dropdowns com max-height e touch scrolling

MEDIA QUERIES:
- @media (max-width: 430px) - iPhone 14 Pro Max e menores
- @media (max-height: 430px) - Landscape mode
- Ajustes de fonte: 10pt base em telas pequenas
- Padding/margins reduzidos
- Canvas: 250px (portrait) / 180px (landscape)

PWA:
- @media (display-mode: standalone) - Remove bounce quando instalado

Deploy: frontend/dist deployed to 213.165.93.60
2025-12-16 08:26:04 +00:00
marcoitaloesp-ai
91300c9457
v1.39.0 - PWA iOS: Service Worker + instalação iPhone/iPad
- Service Worker v1.39.0 com estratégias offline-first
- Cache-First: imagens, fontes (resposta imediata)
- Network-First: chamadas API (dados frescos)
- Stale-While-Revalidate: HTML/CSS/JS
- Verificação de atualizações a cada 1 hora
- Prompt de atualização quando nova versão disponível
- manifest.json otimizado: scope, categories, prefer_related_applications
- Meta tags iOS: apple-mobile-web-app-capable, black-translucent
- Registro automático do Service Worker em main.jsx
- Documentação completa: docs/INSTALACAO_iOS.md
- Compatível com upgrade futuro para Capacitor (30 min, zero mudanças)

Deploy: frontend/dist deployed to 213.165.93.60
2025-12-16 08:21:14 +00:00
marcoitaloesp-ai
cee24f0b42
📍 CHECKPOINT: Estado estável antes da implementação PWA iOS 2025-12-16 08:12:23 +00:00
marcoitaloesp-ai
f4a33b88bc
v1.38.0 - Projeção de Saldo considera transações em atraso + alerta visual 2025-12-15 16:57:26 +00:00
marcoitaloesp-ai
b9592fc915
v1.37.0 - Add Projeção de Saldo ao Dashboard 2025-12-15 16:50:52 +00:00
marcoitaloesp-ai
c81606409f
v1.36.2 - Add subcategoria Subscrições + Fix i18n high_concentration 2025-12-15 16:39:37 +00:00
marcoitaloesp-ai
0d8287a1c4
v1.36.1 - Fix: Corrigido erro 'n is not a function' na seção Passivos (formatDate import) 2025-12-15 16:23:34 +00:00
marcoitaloesp-ai
7fbd572371
v1.36.0 - Redesign seção Maiores Despesas com KPI cards + gráfico barras + tabela profissional 2025-12-15 16:18:52 +00:00
marcoitaloesp-ai
d03565d4ab
v1.35.0: Redesign completo da seção de Comparação de Períodos
Improved:
- Cards KPI com gradientes e ícones para cada métrica
- Tabela comparativa detalhada lado a lado
- Gráfico de barras agrupadas profissional
- Layout responsivo otimizado
- Badges de variação com validação NaN
- Traduções completas (pt-BR, en, es)
2025-12-15 16:06:16 +00:00
marcoitaloesp-ai
3c579afc66
v1.34.7: Adicionada tradução costCenters.name + subcategorias Filhos
Fixed:
- Adicionado costCenters.name (Nome/Name/Nombre)
- Corrige coluna em relatórios por centro de custo

Added:
- 5 novas subcategorias em Filhos
- Mesada, Passeios, Festas, Material Escolar, Transporte Escolar
- Total de 12 subcategorias disponíveis
2025-12-15 16:01:18 +00:00
marcoitaloesp-ai
fd9763b2bf
v1.34.6: Adicionadas traduções credit e debit
Fixed:
- Adicionado transactions.credit e transactions.debit
- Corrige exibição de tipo nos templates de recorrência
- Traduções completas em pt-BR, en, es
2025-12-15 15:54:39 +00:00
marcoitaloesp-ai
4a6db8e10b
v1.34.5: Correção de traduções faltantes (i18n)
Fixed:
- Adicionado transactions.expense e transactions.income
- Traduções completas em pt-BR, en, es
- Corrige filtros na página de Templates de Recorrência
2025-12-15 15:51:52 +00:00
marcoitaloesp-ai
d885d7bd97
v1.34.4: Correção de carregamento de templates recorrentes
Fixed:
- Filtros vazios removidos antes da requisição
- Templates agora aparecem corretamente na lista
- Corrige bug que causava lista vazia ao carregar página
2025-12-15 15:49:19 +00:00
marcoitaloesp-ai
5b52199c0d
v1.34.3: Correção de formatação de data em Passivos
Fixed:
- Data da próxima parcela agora formatada corretamente
- Usa formatDate() para exibição legível localizada
- Corrige timestamp ISO bruto
2025-12-15 15:44:43 +00:00
marcoitaloesp-ai
0b66364650
v1.34.2: Correção de NaN% nos badges de variação
Fixed:
- Validação isNaN() e isFinite() nos badges
- Badges só aparecem com valores válidos
- Corrige erro quando ano anterior tem dados zerados
2025-12-15 12:20:33 +00:00
marcoitaloesp-ai
82e1d7a884
v1.34.1: UI/UX melhorada do resumo de relatórios
Improved:
- Cards KPI redesenhados com ícones e melhor hierarquia
- Badges de variação com contraste aprimorado
- Métricas de média mensal adicionadas
- Card de Taxa de Poupança com barra de progresso
- Feedback inteligente (Excelente/Boa/Pode melhorar)
- Gráfico comparativo com tooltips e bordas arredondadas
- Tradução completa (pt-BR, en, es)
2025-12-15 12:18:34 +00:00
marcoitaloesp-ai
f9571656d5
fix: Correção relatórios de Passivos e Transações Futuras (v1.34.0)
- Relatório Passivos: total_amount → total_contract_value
- Transações Futuras: total_items → total_transactions
- Atualizado VERSION e CHANGELOG
2025-12-14 22:11:41 +00:00
marcoitaloesp-ai
8d9e022f9f
v1.33.0: Gráfico de projeção de saldo + reset completo do banco de dados
Added:
- Gráfico de projeção de saldo com período ajustável (1-12 meses)
- Endpoint GET /api/reports/projection-chart
- Componente BalanceProjectionChart com Chart.js
- Projeções baseadas em recorrências, passivos e transações agendadas
- Tradução completa (pt-BR, en, es)

Fixed:
- Type casting para parâmetro months no endpoint
- Query SQL simplificada sem exchange_rates
- Ordem de execução das migrações
- Permissões do bootstrap/cache (www-data)

Changed:
- Database reset completo (migrate:fresh)
- Usuário recriado com novo token API
- Deploy completo via scripts oficiais
2025-12-14 20:08:47 +00:00
marcoitaloesp-ai
1feb3354ea
fix(reports): corrigir future-transactions e overdue - v1.32.2
- Reescrito futureTransactions() com 3 fontes de dados:
  * Transações pending/scheduled (usando planned_date)
  * Cuotas de passivos pendentes
  * Projeções de recorrências ativas
- Adicionados helpers getNextRecurrenceDates() e advanceToNextOccurrence()
- Corrigida query SQL: removida referência c.name inexistente
- overdueTransactions() inclui cuotas e transações vencidas
- Deploy via script oficial deploy.sh

Closes: endpoints /api/reports/future-transactions e /api/reports/overdue
2025-12-14 19:20:06 +00:00
marcoitaloesp-ai
99be24e309
v1.32.1 - Fix Reports category totals bug, fix overdue endpoint, configure weekly server updates 2025-12-14 18:53:46 +00:00
marcoitaloesp-ai
39de07bf96
fix: Change transaction_date to effective_date in controllers and models 2025-12-14 16:38:32 +00:00
marcoitaloesp-ai
604302ada4
fix: Change transaction_type to type in controllers and models
- FinancialHealthController: Fix column name in queries
- ReportController: Fix column name in queries
- Budget model: Fix getSpentAmountAttribute query
2025-12-14 16:36:31 +00:00
marcoitaloesp-ai
854e90e23c
v1.32.0 - Financial Planning Suite: Health Score, Goals, Budgets & Reports
NEW FEATURES:
- Financial Health: Score 0-100, 6 metrics, insights, recommendations
- Goals: Create/edit savings goals, contributions, progress tracking
- Budgets: Monthly category limits, usage alerts, year summary
- Reports: 7 tabs with charts (category, evolution, projection, etc.)

BACKEND:
- New models: FinancialGoal, GoalContribution, Budget
- New controllers: FinancialHealthController, FinancialGoalController, BudgetController, ReportController
- New migrations: financial_goals, goal_contributions, budgets

FRONTEND:
- New pages: FinancialHealth.jsx, Goals.jsx, Budgets.jsx, Reports.jsx
- New services: financialHealthService, financialGoalService, budgetService, reportService
- Navigation: New 'Planning' group in sidebar

Chart.js integration for all visualizations
2025-12-14 16:31:45 +00:00
marcoitaloesp-ai
10d2f81649
v1.31.2: ConfirmModal, CategorySelector en batch modal, OverdueWidget horizontal, fix duplicate transaction 2025-12-14 16:09:01 +00:00