whisper-money/app/Http/Requests
Víctor Falcón 0976b635e7 feat(transactions): serve import dedup and account ledger from the backend
Migrate the last two flows off the deprecated client-side IndexedDB/Dexie
"offline-first" model so they read from the backend instead of the local DB.

- Import duplicate detection now hits POST /api/transactions/check-duplicates,
  which matches on day + amount (integer cents) + normalized description
  server-side, replacing the sync()-then-read-Dexie approach that silently
  missed duplicates beyond the local cache window.
- The account detail transaction list is now served as an Inertia prop from
  AccountController@show (eager-loading category + labels) instead of fetching
  every transaction from /api/sync/transactions and filtering client-side,
  which could show an incomplete list for accounts with long history.
- The import preview's "existing transactions" panel reads from
  GET /api/transactions?account_id=…&per_page=10 (index gains an account_id
  filter and a clamped per_page) instead of Dexie.
- TransactionList renders only from the provided prop; the /api/sync fetch,
  the Dexie-backed search, and the refreshKey refetch are removed (search is
  now in-memory; create triggers a scoped Inertia reload).

Tests cover the new endpoint (matching, normalization, account scoping, IDOR),
the account_id filter, and the account-show transactions prop.
2026-07-03 16:00:58 +02:00
..
Ai feat(ai): suggest automation rules during onboarding (#523) 2026-06-13 22:51:15 +02:00
Api feat(transactions): serve import dedup and account ledger from the backend 2026-07-03 16:00:58 +02:00
Concerns refactor(requests): share account detail validation rules (#481) 2026-06-03 19:01:03 +02:00
OpenBanking feat(banking): add Interactive Brokers sync via Flex Web Service (#581) 2026-06-23 11:39:24 +02:00
Settings refactor: centralize duplicated provider & locale keys into enums (#543) 2026-06-16 13:43:14 +00:00
BulkReEvaluateRulesRequest.php feat(transactions): add counterparty fields (#440) 2026-05-27 16:20:55 +02:00
BulkUpdateTransactionsRequest.php refactor(requests): extract user-owned exists rules to trait (#477) 2026-06-03 17:33:54 +02:00
IndexTransactionRequest.php feat(ai): auto-categorize transactions with AI (behind flag) (#535) 2026-06-15 16:35:20 +02:00
ReorderAccountsRequest.php feat(accounts): reorder accounts with drag-and-drop (#575) 2026-06-21 11:17:45 +02:00
StoreAccountBalanceRequest.php feat: investment benefits — show gains/losses on investment accounts (#140) 2026-02-23 13:59:10 +01:00
StoreBudgetRequest.php feat: add catch-all budgets (#527) 2026-06-15 16:07:19 +00:00
StoreIntegrationRequestRequest.php feat(integration-requests): community board to request & vote bank integrations (#550) 2026-06-17 12:50:51 +00:00
StoreRealEstateDetailRequest.php refactor(requests): share account detail validation rules (#481) 2026-06-03 19:01:03 +02:00
StoreTransactionRequest.php refactor(requests): extract user-owned exists rules to trait (#477) 2026-06-03 17:33:54 +02:00
StoreUserLeadRequest.php feat(i18n): add French translation support (#532) 2026-06-15 19:15:43 +02:00
UpdateAccountVisibilityRequest.php feat(dashboard): add accounts manager dialog with visibility toggle and reorder (#604) 2026-06-27 16:11:25 +00: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 refactor(requests): share account detail validation rules (#481) 2026-06-03 19:01:03 +02:00
UpdateTransactionRequest.php refactor(requests): extract user-owned exists rules to trait (#477) 2026-06-03 17:33:54 +02:00