view data fixes
This commit is contained in:
@@ -1,41 +1,29 @@
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
import { RaceDetailEntryViewModel } from './RaceDetailEntryViewModel';
|
||||
import { RaceDetailUserResultViewModel } from './RaceDetailUserResultViewModel';
|
||||
import { RaceDetailsRaceViewModel } from './RaceDetailsRaceViewModel';
|
||||
import { RaceDetailsLeagueViewModel } from './RaceDetailsLeagueViewModel';
|
||||
import { RaceDetailsRegistrationViewModel } from './RaceDetailsRegistrationViewModel';
|
||||
import type { RaceDetailsViewData } from "../view-data/RaceDetailsViewData";
|
||||
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
export class RaceDetailsViewModel extends ViewModel {
|
||||
private readonly data: RaceDetailsViewData;
|
||||
readonly race: RaceDetailsRaceViewModel | null;
|
||||
readonly league: RaceDetailsLeagueViewModel | null;
|
||||
readonly entryList: RaceDetailEntryViewModel[];
|
||||
readonly registration: RaceDetailsRegistrationViewModel;
|
||||
readonly userResult: RaceDetailUserResultViewModel | null;
|
||||
|
||||
export type RaceDetailsRaceViewModel = ViewModel & {
|
||||
id: string;
|
||||
track: string;
|
||||
car: string;
|
||||
scheduledAt: string;
|
||||
status: string;
|
||||
sessionType: string;
|
||||
};
|
||||
constructor(data: RaceDetailsViewData) {
|
||||
super();
|
||||
this.data = data;
|
||||
this.race = data.race ? new RaceDetailsRaceViewModel(data.race) : null;
|
||||
this.league = data.league ? new RaceDetailsLeagueViewModel(data.league) : null;
|
||||
this.entryList = data.entryList.map(e => new RaceDetailEntryViewModel(e));
|
||||
this.registration = new RaceDetailsRegistrationViewModel(data.registration);
|
||||
this.userResult = data.userResult ? new RaceDetailUserResultViewModel(data.userResult) : null;
|
||||
}
|
||||
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
|
||||
export type RaceDetailsLeagueViewModel = ViewModel & {
|
||||
id: string;
|
||||
name: string;
|
||||
description?: string | null;
|
||||
settings?: unknown;
|
||||
};
|
||||
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
|
||||
export type RaceDetailsRegistrationViewModel = ViewModel & {
|
||||
canRegister: boolean;
|
||||
isUserRegistered: boolean;
|
||||
};
|
||||
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
|
||||
export type RaceDetailsViewModel = ViewModel & {
|
||||
race: RaceDetailsRaceViewModel | null;
|
||||
league: RaceDetailsLeagueViewModel | null;
|
||||
entryList: RaceDetailEntryViewModel[];
|
||||
registration: RaceDetailsRegistrationViewModel;
|
||||
userResult: RaceDetailUserResultViewModel | null;
|
||||
canReopenRace: boolean;
|
||||
error?: string;
|
||||
};
|
||||
get canReopenRace(): boolean { return this.data.canReopenRace; }
|
||||
get error(): string | undefined { return this.data.error; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user