35 lines
837 B
TypeScript
35 lines
837 B
TypeScript
import type { Presenter } from '@gridpilot/shared/presentation';
|
|
|
|
export interface RaceListItemViewModel {
|
|
id: string;
|
|
track: string;
|
|
car: string;
|
|
scheduledAt: string;
|
|
status: 'scheduled' | 'running' | 'completed' | 'cancelled';
|
|
leagueId: string;
|
|
leagueName: string;
|
|
strengthOfField: number | null;
|
|
isUpcoming: boolean;
|
|
isLive: boolean;
|
|
isPast: boolean;
|
|
}
|
|
|
|
export interface RacesPageViewModel {
|
|
races: RaceListItemViewModel[];
|
|
stats: {
|
|
total: number;
|
|
scheduled: number;
|
|
running: number;
|
|
completed: number;
|
|
};
|
|
liveRaces: RaceListItemViewModel[];
|
|
upcomingThisWeek: RaceListItemViewModel[];
|
|
recentResults: RaceListItemViewModel[];
|
|
}
|
|
|
|
export interface RacesPageResultDTO {
|
|
races: any[];
|
|
}
|
|
|
|
export interface IRacesPagePresenter
|
|
extends Presenter<RacesPageResultDTO, RacesPageViewModel> {} |