29 lines
1.4 KiB
TypeScript
29 lines
1.4 KiB
TypeScript
import { ViewModel } from "../contracts/view-models/ViewModel";
|
|
import type { LeagueSummaryViewData } from "../view-data/LeagueSummaryViewData";
|
|
|
|
export class LeagueSummaryViewModel extends ViewModel {
|
|
private readonly data: LeagueSummaryViewData;
|
|
|
|
constructor(data: LeagueSummaryViewData) {
|
|
super();
|
|
this.data = data;
|
|
}
|
|
|
|
get id(): string { return this.data.id; }
|
|
get name(): string { return this.data.name; }
|
|
get description(): string | null { return this.data.description; }
|
|
get logoUrl(): string | null { return this.data.logoUrl; }
|
|
get ownerId(): string { return this.data.ownerId; }
|
|
get createdAt(): string { return this.data.createdAt; }
|
|
get maxDrivers(): number { return this.data.maxDrivers; }
|
|
get usedDriverSlots(): number { return this.data.usedDriverSlots; }
|
|
get activeDriversCount(): number | undefined { return this.data.activeDriversCount; }
|
|
get nextRaceAt(): string | undefined { return this.data.nextRaceAt; }
|
|
get maxTeams(): number | undefined { return this.data.maxTeams; }
|
|
get usedTeamSlots(): number | undefined { return this.data.usedTeamSlots; }
|
|
get structureSummary(): string { return this.data.structureSummary; }
|
|
get scoringPatternSummary(): string | undefined { return this.data.scoringPatternSummary; }
|
|
get timingSummary(): string { return this.data.timingSummary; }
|
|
get category(): string | null | undefined { return this.data.category; }
|
|
get scoring() { return this.data.scoring; }
|
|
} |