import type { Presenter } from '@core/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: unknown[];
}

export interface IRacesPagePresenter
  extends Presenter<RacesPageResultDTO, RacesPageViewModel> {}