marcoitaloesp-ai
9c9d6443e7
v1.57.0: Redesign category modals + i18n updates + demo transactions fix
...
- Redesigned category create/edit modal with elegant wizard-style UI
- Redesigned batch categorization modal with visual cards and better preview
- Added missing i18n translations (common.continue, creating, remove)
- Added budgets.general and wizard translations for ES, PT-BR, EN
- Fixed 3 demo user transactions that were missing categories
2025-12-18 19:06:07 +00:00
marcoitaloesp-ai
6292b62315
feat: complete email system redesign with corporate templates
...
- Redesigned all email templates with professional corporate style
- Created base layout with dark header, status cards, and footer
- Updated: subscription-cancelled, account-activation, welcome, welcome-new-user, due-payments-alert
- Removed emojis and gradients for cleaner look
- Added multi-language support (ES, PT-BR, EN)
- Fixed email delivery (sync instead of queue)
- Fixed PayPal already-cancelled subscription handling
- Cleaned orphan subscriptions from deleted users
2025-12-18 00:44:37 +00:00
marcoitaloesp-ai
984855e36c
feat: Landing page pública + Registro com seleção de plano
...
- Nova Landing Page institucional em /
- Seções: Hero, Features, Pricing, FAQ, CTA, Footer
- Pricing integrado com API de planos
- Register.jsx agora suporta seleção de plano
- Parâmetro ?plan=slug na URL do registro
- Traduções EN, ES, PT-BR para landing
- PayPal configurado no servidor (sandbox)
Versão: 1.54.0
2025-12-17 19:44:12 +00:00
marcoitaloesp-ai
c99bca9404
v1.53.0: Fix admin middleware, deploy cnxifly pages from server
2025-12-17 17:42:46 +00:00
marcoitaloesp-ai
3a336eb692
feat: Admin user management + SaaS limits tested v1.51.0
...
- Add UserManagementController@store for creating users
- Add POST /api/admin/users endpoint
- Support user types: Free, Pro, Admin
- Auto-create 100-year subscription for Pro/Admin users
- Add user creation modal to Users.jsx
- Complete SaaS limit testing:
- Free user limits: 1 account, 10 categories, 3 budgets, 100 tx
- Middleware blocks correctly at limits
- Error messages are user-friendly
- Usage stats API working correctly
- Update SAAS_STATUS.md with test results
- Bump version to 1.51.0
2025-12-17 15:22:01 +00:00
marcoitaloesp-ai
679a1bc4b2
feat(subscriptions): Add PayPal integration for SaaS (Fase 3) v1.50.0
...
Backend:
- PayPalService with OAuth2, subscriptions, webhooks
- SubscriptionController with status, subscribe, confirm, cancel, invoices
- Webhook handlers for PayPal events (activated, cancelled, expired, payment)
- Config for PayPal credentials
Frontend:
- Pricing.jsx: Plans page with cards, FAQ, trust badges
- Billing.jsx: Subscription management, invoices list, cancel modal
- Added routes /pricing (public) and /billing (auth)
- Navigation links in Settings menu
Translations:
- pricing.* and billing.* keys in ES, PT-BR, EN
- nav.pricing, nav.billing
Ready for PayPal Sandbox testing once credentials are configured.
2025-12-17 10:56:54 +00:00
marcoitaloesp-ai
0adb5c889f
feat(subscriptions): sistema de assinaturas SaaS v1.49.0
...
- Criar tabela plans com Free, Pro Monthly, Pro Annual
- Criar tabela subscriptions com status e integração PayPal
- Criar tabela invoices com numeração sequencial WM-YYYY-NNNNNN
- Models: Plan, Subscription, Invoice com helpers
- User: hasActiveSubscription(), onTrial(), currentPlan(), etc.
- API: GET /api/plans (público)
- Seeder: PlansSeeder com 3 planos base
- Fase 2 do roadmap SaaS concluída
2025-12-17 10:46:34 +00:00
marcoitaloesp-ai
abaf0097c5
feat(profile): perfil completo para SaaS v1.48.0
...
- Expandir tabela users com campos para SaaS
- Adicionar: first_name, last_name, phone_country_code, phone
- Adicionar: accept_whatsapp, accept_emails, country, timezone, locale
- User Model: accessors fullName e fullPhone
- Profile.jsx: formulário completo com DDI, checkboxes, seletores
- Traduções i18n em ES, PT-BR, EN
- Fase 1 do roadmap SaaS concluída
2025-12-17 10:40:20 +00:00
marcoitaloesp-ai
8121a35c8b
docs: atualizar README para v1.47.0 com novas funcionalidades
2025-12-17 10:24:34 +00:00
marcoitaloesp-ai
8157220875
docs: atualizar copilot-instructions com regra de README
2025-12-17 10:23:00 +00:00
marcoitaloesp-ai
38defe1060
v1.47.0 - Página Meu Perfil: editar nome, email e senha
2025-12-17 10:22:04 +00:00
marcoitaloesp-ai
c04dfd339c
v1.44.6 - Anti-spam: DKIM validado, headers adicionados, docs atualizadas
2025-12-17 10:14:35 +00:00
marcoitaloesp-ai
727a70d9d1
fix: Restore proper UTF-8 accented characters in email template
...
UTF-8 encoding is properly configured in the HTML meta tag,
no need to remove accents as a workaround.
2025-12-17 10:07:11 +00:00
marcoitaloesp-ai
135dc56eb6
chore: Improve email anti-spam compliance and update server docs
...
- Add proper email headers: X-Mailer, X-Priority, Precedence, List-Unsubscribe
- Improve HTML template with XHTML doctype for better compatibility
- Add compliance footer with unsubscribe link and address
- Remove accented characters from email template (spam trigger)
- Update CREDENCIAIS_SERVIDOR.md with:
- Current service versions (PHP 8.4.15, Nginx 1.29.4, etc)
- DNS anti-spam status (SPF ✅ , DMARC ✅ , DKIM ⚠️ pending)
- DKIM key for DNS publication
- Cron job documentation
- New API endpoints (/preferences)
2025-12-17 10:04:44 +00:00
marcoitaloesp-ai
19dcdce262
feat: Add daily due payments notification system with user preferences
...
## New Features
- Email notifications for overdue and upcoming payments
- User preferences page for notification settings
- Daily scheduler to send alerts at user-configured time
- Smart analysis: payable items, transfer suggestions between accounts
## Backend
- Migration for user_preferences table
- SendDuePaymentsAlert Artisan command
- DuePaymentsAlert Mailable with HTML/text templates
- UserPreferenceController with test-notification endpoint
- Scheduler config for notify:due-payments command
## Frontend
- Preferences.jsx page with notification toggle
- API service for preferences
- Route and menu link for settings
- Translations (PT-BR, EN, ES)
## Server
- Cron configured for Laravel scheduler
Version: 1.44.5
2025-12-17 09:57:40 +00:00
marcoitaloesp-ai
6149aee7ac
v1.43.26 - FIX: Erro 500 em projection-chart
2025-12-16 20:33:04 +00:00
marcoitaloesp-ai
d47201bca7
v1.43.25 - REESCRITA COMPLETA: Lógica de projeção corrigida
2025-12-16 20:30:23 +00:00
marcoitaloesp-ai
83a4d91029
v1.43.24 - FIX CRITICAL: Projeção inclui recurring_instances vencidas
2025-12-16 20:25:08 +00:00
marcoitaloesp-ai
738730b549
v1.43.23 - FIX CRITICAL: Erro inicialização circular Dashboard
2025-12-16 20:21:30 +00:00
marcoitaloesp-ai
650ca0821a
v1.43.22 - FIX: Widget de projeção atualiza automaticamente
2025-12-16 20:17:38 +00:00
marcoitaloesp-ai
e1a01cab91
v1.43.21 - FIX CRÍTICO: Instâncias de recorrências vencidas na projeção
2025-12-16 20:13:32 +00:00
marcoitaloesp-ai
580d318e85
v1.43.20 - FIX: Projeção de saldo inclui transações pendentes vencidas
2025-12-16 20:10:54 +00:00
marcoitaloesp-ai
e92cc8cf1f
v1.43.19 - Revisão completa do modal de editar template recorrente
2025-12-16 18:15:11 +00:00
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