import type { RaceStatus } from '../../domain/entities/Race'; import type { Result } from '../../domain/entities/Result'; import type { Driver } from '../../domain/entities/Driver'; import type { PenaltyType } from '../../domain/entities/Penalty'; export interface RaceResultsHeaderViewModel { id: string; leagueId: string; track: string; scheduledAt: Date; status: RaceStatus; } export interface RaceResultsLeagueViewModel { id: string; name: string; } export interface RaceResultsPenaltySummaryViewModel { driverId: string; type: PenaltyType; value?: number; } export interface RaceResultsDetailViewModel { race: RaceResultsHeaderViewModel | null; league: RaceResultsLeagueViewModel | null; results: Result[]; drivers: Driver[]; penalties: RaceResultsPenaltySummaryViewModel[]; pointsSystem: Record; fastestLapTime?: number; currentDriverId?: string; error?: string; } export interface IRaceResultsDetailPresenter { present(viewModel: RaceResultsDetailViewModel): RaceResultsDetailViewModel; getViewModel(): RaceResultsDetailViewModel | null; }