Files
gridpilot.gg/apps/website/lib/utilities/LeagueMembershipUtility.ts
2025-12-18 14:48:37 +01:00

26 lines
994 B
TypeScript

import { LeagueMembershipService } from '@/lib/services/leagues/LeagueMembershipService';
import { LeagueRoleUtility } from '@/lib/utilities/LeagueRoleUtility';
export class LeagueMembershipUtility {
/**
* Derive a driver's primary league from cached memberships.
* Prefers any active membership and returns the first matching league.
*/
static getPrimaryLeagueIdForDriver(driverId: string): string | null {
for (const [leagueId, members] of LeagueMembershipService.getCachedMembershipsIterator()) {
if (members.some((m) => m.driverId === driverId && m.status === 'active')) {
return leagueId;
}
}
return null;
}
/**
* Check if a driver is owner or admin of a league.
*/
static isOwnerOrAdmin(leagueId: string, driverId: string): boolean {
const membership = LeagueMembershipService.getMembership(leagueId, driverId);
if (!membership) return false;
return LeagueRoleUtility.isLeagueAdminOrHigherRole(membership.role);
}
}