whisper-money/app/Http/Requests/Api
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
..
BulkUpdateTransactionRequest.php feat: Decrypt encrypted transactions on key unlock (#123) 2026-02-16 10:37:43 +01:00
CheckDuplicateTransactionsRequest.php feat(transactions): serve import dedup and account ledger from the backend 2026-07-03 16:00:58 +02:00
StoreSavedFilterRequest.php feat(transactions): save and reuse transaction filters (#496) 2026-06-05 18:00:14 +02:00
UpdateAccountNameRequest.php Remove encryption from bank account names (#104) 2026-02-09 14:15:26 +01:00
UpdateSavedFilterRequest.php feat(transactions): save and reuse transaction filters (#496) 2026-06-05 18:00:14 +02:00