import type { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig';

export type LeagueScoringPresetPrimaryChampionshipType =
  | 'driver'
  | 'team'
  | 'nations'
  | 'trophy';

export interface LeagueScoringPresetDTO {
  id: string;
  name: string;
  description: string;
  primaryChampionshipType: LeagueScoringPresetPrimaryChampionshipType;
  sessionSummary: string;
  bonusSummary: string;
  dropPolicySummary: string;
}

/**
 * Provider abstraction for league scoring presets used by application-layer queries.
 *
 * In-memory implementation is backed by the preset registry in
 * InMemoryScoringRepositories.
 */
export interface LeagueScoringPresetProvider {
  listPresets(): LeagueScoringPresetDTO[];
  getPresetById(id: string): LeagueScoringPresetDTO | undefined;
  createScoringConfigFromPreset(presetId: string, seasonId: string): LeagueScoringConfig;
}