export type Timings = { practiceMinutes?: number; qualifyingMinutes?: number; sprintRaceMinutes?: number; mainRaceMinutes?: number; sessionCount?: number; [key: string]: unknown; }; export class ScoringPresetApplier { static applyToTimings(patternId: string, currentTimings: Timings): Timings { // Website-local fallback mapping (UI convenience only). // Authoritative preset/timing rules should live in the API. switch (patternId) { case 'sprint-main-driver': return { ...currentTimings, practiceMinutes: currentTimings.practiceMinutes ?? 20, qualifyingMinutes: currentTimings.qualifyingMinutes ?? 30, sprintRaceMinutes: currentTimings.sprintRaceMinutes ?? 20, mainRaceMinutes: currentTimings.mainRaceMinutes ?? 40, sessionCount: 2, }; case 'endurance-main-driver': return { ...currentTimings, practiceMinutes: currentTimings.practiceMinutes ?? 30, qualifyingMinutes: currentTimings.qualifyingMinutes ?? 20, sprintRaceMinutes: 0, mainRaceMinutes: currentTimings.mainRaceMinutes ?? 120, sessionCount: 1, }; default: return currentTimings; } } }