45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import type { ProtestStatus, ProtestIncident } from '../../domain/entities/Protest';
|
|
import type { Presenter } from '@gridpilot/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: Array<{
|
|
id: string;
|
|
raceId: string;
|
|
protestingDriverId: string;
|
|
accusedDriverId: string;
|
|
incident: ProtestIncident;
|
|
comment?: string;
|
|
proofVideoUrl?: string;
|
|
status: ProtestStatus;
|
|
reviewedBy?: string;
|
|
decisionNotes?: string;
|
|
filedAt: Date;
|
|
reviewedAt?: Date;
|
|
}>;
|
|
driverMap: Map<string, string>;
|
|
}
|
|
|
|
export interface IRaceProtestsPresenter
|
|
extends Presenter<RaceProtestsResultDTO, RaceProtestsViewModel> {} |