Files
gridpilot.gg/packages/racing/application/presenters/IAllRacesPagePresenter.ts
2025-12-11 00:57:32 +01:00

27 lines
766 B
TypeScript

export type AllRacesStatus = 'scheduled' | 'running' | 'completed' | 'cancelled' | 'all';
export interface AllRacesListItemViewModel {
id: string;
track: string;
car: string;
scheduledAt: string;
status: 'scheduled' | 'running' | 'completed' | 'cancelled';
leagueId: string;
leagueName: string;
strengthOfField: number | null;
}
export interface AllRacesFilterOptionsViewModel {
statuses: { value: AllRacesStatus; label: string }[];
leagues: { id: string; name: string }[];
}
export interface AllRacesPageViewModel {
races: AllRacesListItemViewModel[];
filters: AllRacesFilterOptionsViewModel;
}
export interface IAllRacesPagePresenter {
present(viewModel: AllRacesPageViewModel): void;
getViewModel(): AllRacesPageViewModel | null;
}