29 lines
711 B
TypeScript
29 lines
711 B
TypeScript
/**
|
|
* Domain Entity: Penalty
|
|
*
|
|
* Represents a season-long penalty or bonus applied to a driver
|
|
* within a specific league. This is intentionally simple for the
|
|
* alpha demo and models points adjustments only.
|
|
*/
|
|
export type PenaltyType = 'points-deduction' | 'points-bonus';
|
|
|
|
export interface Penalty {
|
|
id: string;
|
|
leagueId: string;
|
|
driverId: string;
|
|
type: PenaltyType;
|
|
/**
|
|
* Signed integer representing points adjustment:
|
|
* - negative for deductions
|
|
* - positive for bonuses
|
|
*/
|
|
pointsDelta: number;
|
|
/**
|
|
* Optional short reason/label (e.g. "Incident penalty", "Fastest laps bonus").
|
|
*/
|
|
reason?: string;
|
|
/**
|
|
* When this penalty was applied.
|
|
*/
|
|
appliedAt: Date;
|
|
} |