import type { DriverLeaderboardItemDTO } from '@/lib/types/generated/DriverLeaderboardItemDTO'; import type { TeamListItemDTO } from '@/lib/types/generated/TeamListItemDTO'; import type { LeaderboardsViewData } from '@/lib/view-data/LeaderboardsViewData'; export class LeaderboardsViewDataBuilder { static build( apiDto: { drivers: { drivers: DriverLeaderboardItemDTO[] }; teams: { teams: TeamListItemDTO[] } } ): LeaderboardsViewData { return { drivers: apiDto.drivers.drivers.map(driver => ({ id: driver.id, name: driver.name, rating: driver.rating, skillLevel: driver.skillLevel, nationality: driver.nationality, wins: driver.wins, rank: driver.rank, avatarUrl: driver.avatarUrl || '', position: driver.rank, })), teams: apiDto.teams.teams.map(team => ({ id: team.id, name: team.name, tag: team.tag, memberCount: team.memberCount, category: team.category, totalWins: team.totalWins || 0, logoUrl: team.logoUrl || '', position: 0, // API doesn't provide team ranking })), }; } }