From 8ee5a8008ed693cd69a84f8df14569c70dbefe7e Mon Sep 17 00:00:00 2001 From: Chris Parsons Date: Thu, 9 Apr 2026 02:27:40 +0000 Subject: [PATCH] feat: sort draft room and auto-pick by VORP instead of expected value Update draft participant sorting to use vorpValue column instead of expectedValue in draft room initialization and auto-pick selection for both single-sport and multi-sport seasons. Co-Authored-By: Claude Sonnet 4.6 --- app/models/draft-utils.ts | 14 +++++++------- app/routes/leagues/$leagueId.draft.$seasonId.tsx | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/models/draft-utils.ts b/app/models/draft-utils.ts index 8097736..1c300e4 100644 --- a/app/models/draft-utils.ts +++ b/app/models/draft-utils.ts @@ -283,12 +283,12 @@ export async function getTopAvailableParticipant( allParticipants.push(...seasonParticipants); } - // Sort by EV desc, then name (expectedValue is a decimal string from DB) + // Sort by VORP desc, then name allParticipants.sort((a, b) => { - const evA = parseFloat(String(a.expectedValue)) || 0; - const evB = parseFloat(String(b.expectedValue)) || 0; - if (evB !== evA) { - return evB - evA; + const vorpA = parseFloat(String(a.vorpValue)) || 0; + const vorpB = parseFloat(String(b.vorpValue)) || 0; + if (vorpB !== vorpA) { + return vorpB - vorpA; } return a.name.localeCompare(b.name); }); @@ -301,7 +301,7 @@ export async function getTopAvailableParticipant( .select() .from(schema.participants) .where(eq(schema.participants.sportsSeasonId, sportsSeasonIds[0])) - .orderBy(desc(schema.participants.expectedValue), schema.participants.name); + .orderBy(desc(schema.participants.vorpValue), schema.participants.name); if (draftedIds.length > 0) { query = db @@ -313,7 +313,7 @@ export async function getTopAvailableParticipant( notInArray(schema.participants.id, draftedIds) ) ) - .orderBy(desc(schema.participants.expectedValue), schema.participants.name); + .orderBy(desc(schema.participants.vorpValue), schema.participants.name); } const [topParticipant] = await query; diff --git a/app/routes/leagues/$leagueId.draft.$seasonId.tsx b/app/routes/leagues/$leagueId.draft.$seasonId.tsx index 902df7a..1dd83c0 100644 --- a/app/routes/leagues/$leagueId.draft.$seasonId.tsx +++ b/app/routes/leagues/$leagueId.draft.$seasonId.tsx @@ -178,7 +178,7 @@ export async function loader(args: Route.LoaderArgs) { : inArray(schema.participants.sportsSeasonId, sportsSeasonIds) ) .orderBy( - desc(schema.participants.expectedValue), + desc(schema.participants.vorpValue), asc(schema.participants.name) ) : [];