## Summary - Subsequent syncs (every 6h) now only process recent data instead of re-syncing full history, reducing unnecessary API calls and database writes - Full sync still runs automatically on first connection and can be forced anytime with `banking:sync --full` - Centralizes `isFirstSync` logic in `SyncBankingConnectionJob` and propagates the `fullSync` flag through the entire chain: Command → `SyncAllBankingConnectionsJob` → `SyncBankingConnectionJob` → provider services ## Changes by provider - **Indexa Capital**: Skips portfolio entries older than the last recorded balance date on incremental syncs (the API doesn't support date filtering, so filtering is done client-side) - **Binance**: Reuses stored `invested_amount` from the database on subsequent syncs instead of fetching up to 2 years of deposit/withdrawal history in 90-day windows - **EnableBanking / Bitpanda**: Already minimal — no changes needed ## Testing - Fixed 6 existing Binance tests to pass `isFirstSync: true` for invested amount calculation - Added 7 new tests covering incremental sync behavior, full sync override, and `--full` flag propagation |
||
|---|---|---|
| .. | ||
| Actions | ||
| Console/Commands | ||
| Contracts | ||
| Enums | ||
| Events | ||
| Http | ||
| Jobs | ||
| Listeners | ||
| Models | ||
| Notifications | ||
| Policies | ||
| Providers | ||
| Services | ||