Files
gridpilot.gg/apps/website/lib/view-models/ProfileOverviewViewModel.ts
2026-01-24 01:25:46 +01:00

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