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( driversDto: { drivers: DriverLeaderboardItemDTO[] } | null, teamsDto: { teams: TeamListItemDTO[] } | null ): LeaderboardsViewData { return { drivers: driversDto?.drivers.slice(0, 5).map((driver, index) => ({ 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: index + 1, })) || [], teams: teamsDto?.teams.slice(0, 5).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, })) || [], }; } }