38 lines
1.2 KiB
TypeScript
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;
|
|
}
|
|
}
|
|
}
|