Files
gridpilot.gg/core/racing/application/presenters/IRaceProtestsPresenter.ts
2025-12-16 11:52:26 +01:00

32 lines
865 B
TypeScript

import type { Protest, ProtestStatus, ProtestIncident } from '../../domain/entities/Protest';
import type { Presenter } from '@core/shared/presentation/Presenter';
export interface RaceProtestViewModel {
id: string;
raceId: string;
protestingDriverId: string;
protestingDriverName: string;
accusedDriverId: string;
accusedDriverName: string;
incident: ProtestIncident;
comment?: string;
proofVideoUrl?: string;
status: ProtestStatus;
reviewedBy?: string;
reviewedByName?: string;
decisionNotes?: string;
filedAt: string;
reviewedAt?: string;
}
export interface RaceProtestsViewModel {
protests: RaceProtestViewModel[];
}
export interface RaceProtestsResultDTO {
protests: Protest[];
driverMap: Map<string, string>;
}
export interface IRaceProtestsPresenter
extends Presenter<RaceProtestsResultDTO, RaceProtestsViewModel> {}