whisper-money/app/Http/Requests
Víctor Falcón e178f1b1bd
feat(settings): let users disable bank transactions email (#472)
## Summary

Adds a **Notifications** section to the account settings page
(`/settings/account`, between Profile information and Update password)
where users can opt out of the daily "new transactions synced" email.

- New per-user preference `notify_on_bank_transactions_synced` on
`user_settings` (defaults to `true`, opt-out).
- `SendDailyBankTransactionsSyncedEmailJob` skips users who disabled it.
- Single generic `PATCH /settings/notifications` endpoint updates any
notification type via a key→column allowlist in
`NotificationPreferenceController::PREFERENCES`. Future notifications
only need a new entry there — no new route/controller.
- Email footer now links back to the settings section so users can
manage preferences.

## Testing

- `tests/Feature/Settings/NotificationPreferenceTest.php` — update,
unknown-key rejection, invalid value, auth, create-when-missing,
default-true, inertia prop.
- `tests/Feature/OpenBanking/SyncBankingConnectionJobTest.php` — email
not sent when disabled.
2026-06-02 12:24:39 +02:00
..
Api feat: Decrypt encrypted transactions on key unlock (#123) 2026-02-16 10:37:43 +01:00
OpenBanking feat: Coinbase banking integration (#388) 2026-05-13 19:53:30 +02:00
Settings feat(settings): let users disable bank transactions email (#472) 2026-06-02 12:24:39 +02:00
BulkReEvaluateRulesRequest.php feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00
BulkUpdateTransactionsRequest.php feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00
IndexTransactionRequest.php feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00
SetupEncryptionRequest.php E2E Encryption 2025-11-07 14:21:25 +00:00
StoreAccountBalanceRequest.php feat: investment benefits — show gains/losses on investment accounts (#140) 2026-02-23 13:59:10 +01:00
StoreBudgetRequest.php feat(budgets): track multiple categories and labels per budget (#466) 2026-06-01 12:32:23 +02:00
StoreRealEstateDetailRequest.php feat(accounts): add real estate asset tracking (#241) 2026-03-24 10:21:32 +00:00
StoreTransactionRequest.php feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00
StoreUserLeadRequest.php feat(waitlist): waiting list with referral system (#199) 2026-03-04 12:36:47 +01:00
UpdateBudgetRequest.php feat(budgets): track multiple categories and labels per budget (#466) 2026-06-01 12:32:23 +02:00
UpdateCurrentAccountBalanceRequest.php feat: investment benefits — show gains/losses on investment accounts (#140) 2026-02-23 13:59:10 +01:00
UpdateLoanDetailRequest.php feat(accounts): add loan amortization projections for loan accounts (#246) 2026-03-26 15:06:09 +01:00
UpdateRealEstateDetailRequest.php feat(accounts): add market value and annual revaluation to real estate accounts (#245) 2026-03-26 11:02:20 +01:00
UpdateTransactionRequest.php feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00