27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
import { ViewModel } from "../contracts/view-models/ViewModel";
|
|
import type { ProfileOverviewViewData } from "../view-data/ProfileOverviewViewData";
|
|
import type {
|
|
ProfileOverviewDriverSummaryViewModel,
|
|
ProfileOverviewExtendedProfileViewModel,
|
|
ProfileOverviewFinishDistributionViewModel,
|
|
ProfileOverviewSocialSummaryViewModel,
|
|
ProfileOverviewStatsViewModel,
|
|
ProfileOverviewTeamMembershipViewModel
|
|
} from "./ProfileOverviewSubViewModels";
|
|
|
|
export class ProfileOverviewViewModel extends ViewModel {
|
|
private readonly data: ProfileOverviewViewData;
|
|
|
|
constructor(data: ProfileOverviewViewData) {
|
|
super();
|
|
this.data = data;
|
|
}
|
|
|
|
get currentDriver(): ProfileOverviewDriverSummaryViewModel | null { return this.data.currentDriver; }
|
|
get stats(): ProfileOverviewStatsViewModel | null { return this.data.stats; }
|
|
get finishDistribution(): ProfileOverviewFinishDistributionViewModel | null { return this.data.finishDistribution; }
|
|
get teamMemberships(): ProfileOverviewTeamMembershipViewModel[] { return this.data.teamMemberships; }
|
|
get socialSummary(): ProfileOverviewSocialSummaryViewModel { return this.data.socialSummary; }
|
|
get extendedProfile(): ProfileOverviewExtendedProfileViewModel | null { return this.data.extendedProfile; }
|
|
}
|