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.slice(0, 10).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.slice(0, 10).map((team, index) => ({ id: team.id, name: team.name, tag: team.tag, memberCount: team.memberCount, category: team.category, totalWins: team.totalWins || 0, logoUrl: team.logoUrl || '', position: index + 1, isRecruiting: team.isRecruiting, performanceLevel: team.performanceLevel || 'N/A', rating: team.rating, })), }; } }