whisper-money/app/Services
Víctor Falcón 8ce0adf8ae
feat: Apply automation rules to bank-synced transactions (#112)
## Summary

- Adds backend automation rule evaluation for bank-synced transactions
using `jwadhams/json-logic-php` (same engine as the frontend
`json-logic-js`) for exact rule parity
- Synchronous `ApplyAutomationRules` listener on `TransactionCreated`
runs before `AssignTransactionToBudget`, auto-assigning categories and
labels via `saveQuietly()` / `syncWithoutDetaching()`
- Skips encrypted transactions and `action_note` (encrypted, can't
handle server-side)

## Test plan

- [x] 17 new Pest tests covering all JsonLogic operators, category/label
assignment, encrypted transaction skip, priority ordering,
case-insensitive matching, user scoping, bank_name matching, amount in
dollars, no `TransactionUpdated` event dispatch, compound rules, and
end-to-end listener integration
- [x] Existing `TransactionSyncServiceTest` passes (7 tests)
- [x] Full test suite passes (546 tests, 0 failures)
- [x] Pint formatting clean
2026-02-12 14:20:55 +01:00
..
Banking feat: Integrate EnableBanking as open banking provider (#106) 2026-02-12 09:09:28 +01:00
Demo Add Budgeting Feature to Track and Manage Spending (#36) 2026-01-21 15:25:50 +01:00
AutomationRuleService.php feat: Apply automation rules to bank-synced transactions (#112) 2026-02-12 14:20:55 +01:00
BudgetPeriodService.php feat: Load transactions history on budget created (#72) 2026-01-22 11:10:15 +01:00
BudgetTransactionService.php feat: Load transactions history on budget created (#72) 2026-01-22 11:10:15 +01:00
PeriodComparator.php Refactor: Optimize category management in CreateDefaultCategories and ResetUserCategories 2025-12-01 15:37:53 +01:00
ResendService.php feat: Sync new users to Resend contacts (#85) 2026-01-28 21:25:58 +01:00