Files
gridpilot.gg/packages/racing/application/presenters/IRacePenaltiesPresenter.ts
2025-12-12 01:11:36 +01:00

32 lines
810 B
TypeScript

import type { Penalty, PenaltyType, PenaltyStatus } from '../../domain/entities/Penalty';
import type { Presenter } from '@gridpilot/shared/presentation/Presenter';
export interface RacePenaltyViewModel {
id: string;
raceId: string;
driverId: string;
driverName: string;
type: PenaltyType;
value?: number;
reason: string;
protestId?: string;
issuedBy: string;
issuedByName: string;
status: PenaltyStatus;
description: string;
issuedAt: string;
appliedAt?: string;
notes?: string;
}
export interface RacePenaltiesViewModel {
penalties: RacePenaltyViewModel[];
}
export interface RacePenaltiesResultDTO {
penalties: Penalty[];
driverMap: Map<string, string>;
}
export interface IRacePenaltiesPresenter
extends Presenter<RacePenaltiesResultDTO, RacePenaltiesViewModel> {}