fix: sort /teams/{id}/evolutions by current_tier desc, current_value desc (#116)

Closes #116

The endpoint was returning results in player_id insertion order, causing
/evo status in Discord to show a wall of T0/value-0 cards before any
progressed players. Sort by current_tier DESC, current_value DESC so
the most-evolved cards always appear first.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Cal Corum 2026-03-19 13:14:23 -05:00
parent 87f46a1bfd
commit 0953a45b9f

View File

@ -1544,8 +1544,8 @@ async def list_team_evolutions(
Joins EvolutionCardState EvolutionTrack (for card_type filtering and
threshold context) and EvolutionCardState Player (for player_name),
both eager-loaded in a single query. Results are paginated via
page/per_page (1-indexed pages); items are ordered by player_id for
stable ordering.
page/per_page (1-indexed pages); items are ordered by current_tier DESC,
current_value DESC so the most-progressed cards appear first.
Query parameters:
card_type -- filter to states whose track.card_type matches (e.g. 'batter', 'sp')
@ -1572,7 +1572,10 @@ async def list_team_evolutions(
.switch(EvolutionCardState)
.join(Player)
.where(EvolutionCardState.team == team_id)
.order_by(EvolutionCardState.player_id)
.order_by(
EvolutionCardState.current_tier.desc(),
EvolutionCardState.current_value.desc(),
)
)
if card_type is not None: