export type LeagueScoringPresetTimingDefaultsViewModel = {
  practiceMinutes: number;
  qualifyingMinutes: number;
  sprintRaceMinutes: number;
  mainRaceMinutes: number;
  sessionCount: number;
};

export type LeagueScoringPresetViewModelInput = {
  id: string;
  name: string;
  sessionSummary: string;
  bonusSummary?: string;
  defaultTimings: LeagueScoringPresetTimingDefaultsViewModel;
};

/**
 * LeagueScoringPresetViewModel
 *
 * View model for league scoring preset configuration
 */
export class LeagueScoringPresetViewModel {
  readonly id: string;
  readonly name: string;
  readonly sessionSummary: string;
  readonly bonusSummary?: string;
  readonly defaultTimings: LeagueScoringPresetTimingDefaultsViewModel;

  constructor(input: LeagueScoringPresetViewModelInput) {
    this.id = input.id;
    this.name = input.name;
    this.sessionSummary = input.sessionSummary;
    this.bonusSummary = input.bonusSummary;
    this.defaultTimings = input.defaultTimings;
  }
}