whisper-money/app/Models
Víctor Falcón 9242b3fe5f
feat: Add per-bank description formatter for bank-synced transactions (#120)
## Summary

- Adds a `BankFormatter` interface with a `BbvaFormatter` implementation
that transforms ALL CAPS `//`-separated BBVA descriptions into readable
Title Case (preserving acronyms like SEPA, S.A., BIZUM and Spanish
stopwords)
- Stores the raw description in a new `original_description` column when
formatting changes it, keeping sync matching intact
- Existing non-BBVA banks and null-bank transactions pass through
unchanged

## Test plan

- [x] Unit tests for `BbvaFormatter` (11 tests: title case, acronyms,
stopwords, reference numbers, mixed-case passthrough, whitespace)
- [x] Unit tests for `TransactionDescriptionFormatter` dispatcher (4
tests: BBVA match, no-match, null bank)
- [x] Feature tests for BBVA sync integration (formatted description +
original stored)
- [x] Feature tests for non-BBVA sync (description unchanged, original
null)
- [x] All 25 existing + new tests pass
- [x] Pint formatting clean
2026-02-13 09:54:58 +01:00
..
Account.php feat: Integrate EnableBanking as open banking provider (#106) 2026-02-12 09:09:28 +01:00
AccountBalance.php Migrate ID's to UUIDv7 2025-11-15 21:25:33 +01:00
AutomationRule.php feat: add transaction labels feature (#24) 2025-12-13 13:02:19 +01:00
AutomationRuleLabel.php feat: add transaction labels feature (#24) 2025-12-13 13:02:19 +01:00
Bank.php Migrate ID's to UUIDv7 2025-11-15 21:25:33 +01:00
BankingConnection.php feat: Integrate EnableBanking as open banking provider (#106) 2026-02-12 09:09:28 +01:00
Budget.php fix: Budget period not found on last day of period (#91) 2026-02-01 11:33:10 +01:00
BudgetPeriod.php feat: Load transactions history on budget created (#72) 2026-01-22 11:10:15 +01:00
BudgetTransaction.php Add Budgeting Feature to Track and Manage Spending (#36) 2026-01-21 15:25:50 +01:00
Category.php Add type enum to categories 2025-12-01 10:29:57 +01:00
EncryptedMessage.php Migrate ID's to UUIDv7 2025-11-15 21:25:33 +01:00
Label.php feat: add transaction labels feature (#24) 2025-12-13 13:02:19 +01:00
LabelTransaction.php feat: add transaction labels feature (#24) 2025-12-13 13:02:19 +01:00
Transaction.php feat: Add per-bank description formatter for bank-synced transactions (#120) 2026-02-13 09:54:58 +01:00
User.php feat: Integrate EnableBanking as open banking provider (#106) 2026-02-12 09:09:28 +01:00
UserLead.php Merge pull request #1 from whisper-money/landing-page 2025-11-24 12:11:35 +01:00
UserMailLog.php feat: Send custom emails to users (#52) 2026-01-09 09:33:19 +01:00