view data fixes

This commit is contained in:
2026-01-23 15:30:23 +01:00
parent e22033be38
commit f8099f04bc
213 changed files with 3466 additions and 3003 deletions

View File

@@ -1,23 +1,17 @@
import { LeagueStandingDTO } from '@/lib/types/generated/LeagueStandingDTO';
import { StandingEntryViewModel } from './StandingEntryViewModel';
import { GetDriverOutputDTO } from '@/lib/types/generated/GetDriverOutputDTO';
import { LeagueMembership } from '@/lib/types/LeagueMembership';
import { ViewModel } from "../contracts/view-models/ViewModel";
import type { LeagueStandingsViewData } from "../view-data/LeagueStandingsViewData";
export class LeagueStandingsViewModel extends ViewModel {
standings: StandingEntryViewModel[];
drivers: GetDriverOutputDTO[];
memberships: LeagueMembership[];
private readonly data: LeagueStandingsViewData;
readonly standings: StandingEntryViewModel[];
constructor(dto: { standings: LeagueStandingDTO[]; drivers: GetDriverOutputDTO[]; memberships: LeagueMembership[] }, currentUserId: string, previousStandings?: LeagueStandingDTO[]) {
const leaderPoints = dto.standings[0]?.points || 0;
this.standings = dto.standings.map((entry, index) => {
const nextPoints = dto.standings[index + 1]?.points || entry.points;
const previousPosition = previousStandings?.find(p => p.driverId === entry.driverId)?.position;
return new StandingEntryViewModel(entry, leaderPoints, nextPoints, currentUserId, previousPosition);
});
this.drivers = dto.drivers;
this.memberships = dto.memberships;
constructor(data: LeagueStandingsViewData) {
super();
this.data = data;
this.standings = data.standings.map(s => new StandingEntryViewModel(s));
}
get drivers(): any[] { return this.data.drivers; }
get memberships(): any[] { return this.data.memberships; }
}