Commit Graph
8 Commits
Author SHA1 Message Date
Mlcavalho1andClaude Sonnet 4.6 2b8524dcde feat: #44 fatura de cartão com data futura fica pendente até confirmação
- Nova tabela pending_bill_imports (migration 016)
- ImportHandler.Confirm: quando is_credit_card=true e payment_date > hoje,
  salva como pending em vez de inserir transações
- Novos endpoints: GET /pending-bills, POST /pending-bills/:id/confirm,
  DELETE /pending-bills/:id
- Dashboard inclui pending_bill_imports no payload
- Frontend: resultado "fatura salva como pendente" no ImportView
- AccountsView exibe widget de faturas pendentes com ações de confirmar/descartar
- dashboard_test: mock de PendingBillRepo + TransactionRepository

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-28 22:26:42 -03:00
Mlcavalho1andClaude Sonnet 4.6 2b0aa352d5 feat: salvar data original da transação e data de vencimento no cartão
Ao importar fatura de cartão com PaymentDate configurado, a data efetiva
da transação passa a ser o vencimento e a data de compra é preservada em
original_date. Migration 013 adiciona a coluna original_date em transactions.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-27 16:25:52 -03:00
Mlcavalho1andClaude Sonnet 4.6 9ba3a3678b feat: total dos valores a importar no rodapé da prévia
Soma apenas as linhas novas (não duplicatas), exibida alinhada à direita.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-27 16:05:28 -03:00
Mlcavalho1andClaude Sonnet 4.6 482bae698a feat: categorizar transações no preview de importação
Select de categoria em cada linha da prévia; category_id salvo no
BulkInsert. Duplicatas ficam desabilitadas.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-27 16:04:19 -03:00
Mlcavalho1andClaude Sonnet 4.6 54d5a03604 fix: checkbox 'fatura de cartão' auto-configura colunas corretas
Ao marcar 'Fatura de cartão', amount_column=3, description=1,
skip_negative=true — elimina erro de coluna errada no CSV do banco.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-27 15:58:04 -03:00
Mlcavalho1andClaude Sonnet 4.6 e438002c0a feat: importação de fatura de cartão — strip R$, skip negativos, all_expenses
Parser limpa prefixo R$ e símbolos de moeda antes de parsear o valor.
Flags SkipNegative e AllExpenses para CSV de fatura de cartão.
UI: checkboxes "Fatura de cartão" e "Ignorar valores negativos".

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-27 15:56:14 -03:00
Mlcavalho1andClaude Sonnet 4.6 c327d5c970 feat(#29): Arcade Neon design system — visual overhaul completo
Implementa o sistema visual Arcade Neon do neon-handoff/ em todo o app:

- tokens.css: tokens --fc-*, utilities (fc-pixel/mono/body/glow), form inputs/buttons globais
- AppHud.vue: HUD persistente com LV/XP/META + nav chips por rota
- BottomNav.vue: nav mobile com 5 rotas
- NeonPanel.vue, CharacterSprite.vue, XPBar.vue, HUDStat.vue: componentes base
- MonthSwitcher.vue, LevelUpModal.vue
- HomeView, CharacterView, TransactionsView, ImportView, CategoriesView,
  AccountsView, SettingsView: reescritos com Arcade Neon
- sprites PNG (lv01–lv15) + sprite-data.json: cosméticos com temas de cor
- game.ts: equippedTheme getter para merge de cores do cosmético equipado
- 008_cosmetics.sql: seeds alinhados com sprite-data.json

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-26 22:53:41 -03:00
Mlcavalho1andClaude Sonnet 4.6 83dff2de78 feat(#18): import de extratos OFX e CSV — parser, dedup, preview e confirmação
Parser OFX tolerante ao formato SGML de bancos brasileiros (sem closing tags, BOM,
timezone suffix). Parser CSV com separador de campo/decimal configurável. Dedup por
FITID (OFX) ou date+amount+desc normalizado. Fluxo: POST /preview → revisão na UI
→ POST /confirm salva e loga. Migration 002 adiciona external_id com unique index.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-05-26 20:17:46 -03:00