Files
gridpilot.gg/apps/website/lib/utilities/ScoringPresetApplier.ts
2025-12-24 21:44:58 +01:00

38 lines
1.2 KiB
TypeScript

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;
}
}
}