view models

This commit is contained in:
2025-12-20 00:31:31 +01:00
parent 5c74837d73
commit 656ec62426
74 changed files with 4511 additions and 347 deletions

View File

@@ -4,7 +4,7 @@ import { DriverLeaderboardItemViewModel } from './DriverLeaderboardItemViewModel
export class DriverLeaderboardViewModel {
drivers: DriverLeaderboardItemViewModel[];
constructor(dto: { drivers: DriverLeaderboardItemDTO[] }, previousDrivers?: DriverLeaderboardItemDTO[]) {
constructor(dto: { drivers: (DriverLeaderboardItemDTO & { avatarUrl: string })[] }, previousDrivers?: (DriverLeaderboardItemDTO & { avatarUrl: string })[]) {
this.drivers = dto.drivers.map((driver, index) => {
const previous = previousDrivers?.find(p => p.id === driver.id);
return new DriverLeaderboardItemViewModel(driver, index + 1, previous?.rating);
@@ -13,7 +13,7 @@ export class DriverLeaderboardViewModel {
/** UI-specific: Total races across all drivers */
get totalRaces(): number {
return this.drivers.reduce((sum, driver) => sum + driver.races, 0);
return this.drivers.reduce((sum, driver) => sum + driver.racesCompleted, 0);
}
/** UI-specific: Total wins across all drivers */