Files
gridpilot.gg/apps/website/lib/view-models/LeagueScoringChampionshipViewModel.ts
Marc Mintel d97f50ed72
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 6m4s
Contract Testing / contract-snapshot (pull_request) Has been skipped
view data fixes
2026-01-23 11:59:49 +01:00

36 lines
1.1 KiB
TypeScript

export type LeagueScoringChampionshipViewModelInput = {
id: string;
name: string;
type: string;
sessionTypes: string[];
pointsPreview?: Array<{ sessionType: string; position: number; points: number }> | null;
bonusSummary?: string[] | null;
dropPolicyDescription?: string;
};
/**
* LeagueScoringChampionshipViewModel
*
* View model for league scoring championship
*/
import { ViewModel } from "../contracts/view-models/ViewModel";
export class LeagueScoringChampionshipViewModel extends ViewModel {
readonly id: string;
readonly name: string;
readonly type: string;
readonly sessionTypes: string[];
readonly pointsPreview: Array<{ sessionType: string; position: number; points: number }>;
readonly bonusSummary: string[];
readonly dropPolicyDescription?: string;
constructor(input: LeagueScoringChampionshipViewModelInput) {
this.id = input.id;
this.name = input.name;
this.type = input.type;
this.sessionTypes = input.sessionTypes;
this.pointsPreview = input.pointsPreview ?? [];
this.bonusSummary = input.bonusSummary ?? [];
this.dropPolicyDescription = input.dropPolicyDescription;
}
}