* Force standings recalculation after EV simulation
After persisting updated EVs to participantExpectedValues, call
recalculateAffectedLeagues so that teamStandings.projectedPoints
(and all related standing fields) immediately reflect the new EV
rather than remaining stale until the next scoring event.
https://claude.ai/code/session_01S9Pk4wTSphANMhPWaURPTn
* Use recalculateStandings directly after EV simulation
Replaces recalculateAffectedLeagues (which carries Discord notification
and daily snapshot side effects) with a direct call to recalculateStandings
per affected fantasy season. This updates the cached projectedPoints in
teamStandings so the standings page stays in sync with the team page after
a simulation, without triggering unrelated side effects.
https://claude.ai/code/session_01S9Pk4wTSphANMhPWaURPTn
* Polish simulate route after code review
- Remove redundant db variable; use database() inline consistent with
all other model calls in this file
- Parallelize standings recalculation with Promise.all
- Update file header comment to include the standings refresh step
https://claude.ai/code/session_01S9Pk4wTSphANMhPWaURPTn
---------
Co-authored-by: Claude <noreply@anthropic.com>