view models
This commit is contained in:
@@ -1,22 +1,31 @@
|
||||
import { DriverLeaderboardItemDto } from '../dtos';
|
||||
import { DriverLeaderboardItemDTO } from '../types/generated/DriverLeaderboardItemDTO';
|
||||
|
||||
export class DriverLeaderboardItemViewModel implements DriverLeaderboardItemDto {
|
||||
export class DriverLeaderboardItemViewModel implements DriverLeaderboardItemDTO {
|
||||
id: string;
|
||||
name: string;
|
||||
avatarUrl?: string;
|
||||
rating: number;
|
||||
wins: number;
|
||||
races: number;
|
||||
skillLevel: string;
|
||||
isActive: boolean;
|
||||
nationality: string;
|
||||
racesCompleted: number;
|
||||
wins: number;
|
||||
podiums: number;
|
||||
isActive: boolean;
|
||||
rank: number;
|
||||
|
||||
position: number;
|
||||
private previousRating?: number;
|
||||
|
||||
constructor(dto: DriverLeaderboardItemDto, position: number, previousRating?: number) {
|
||||
Object.assign(this, dto);
|
||||
constructor(dto: DriverLeaderboardItemDTO, position: number, previousRating?: number) {
|
||||
this.id = dto.id;
|
||||
this.name = dto.name;
|
||||
this.rating = dto.rating;
|
||||
this.skillLevel = dto.skillLevel;
|
||||
this.nationality = dto.nationality;
|
||||
this.racesCompleted = dto.racesCompleted;
|
||||
this.wins = dto.wins;
|
||||
this.podiums = dto.podiums;
|
||||
this.isActive = dto.isActive;
|
||||
this.rank = dto.rank;
|
||||
this.position = position;
|
||||
this.previousRating = previousRating;
|
||||
}
|
||||
@@ -45,7 +54,7 @@ export class DriverLeaderboardItemViewModel implements DriverLeaderboardItemDto
|
||||
|
||||
/** UI-specific: Win rate */
|
||||
get winRate(): number {
|
||||
return this.races > 0 ? (this.wins / this.races) * 100 : 0;
|
||||
return this.racesCompleted > 0 ? (this.wins / this.racesCompleted) * 100 : 0;
|
||||
}
|
||||
|
||||
/** UI-specific: Formatted win rate */
|
||||
|
||||
Reference in New Issue
Block a user