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; } }