import type { ChampionshipConfig } from '../../domain/types/ChampionshipConfig';
import type { LeagueScoringPresetDTO } from '../ports/LeagueScoringPresetProvider';
import type { Presenter } from '@core/shared/presentation';

export interface LeagueScoringChampionshipViewModel {
  id: string;
  name: string;
  type: string;
  sessionTypes: string[];
  pointsPreview: Array<{ sessionType: string; position: number; points: number }>;
  bonusSummary: string[];
  dropPolicyDescription: string;
}

export interface LeagueScoringConfigViewModel {
  leagueId: string;
  seasonId: string;
  gameId: string;
  gameName: string;
  scoringPresetId?: string;
  scoringPresetName?: string;
  dropPolicySummary: string;
  championships: LeagueScoringChampionshipViewModel[];
}

export interface LeagueScoringConfigData {
  leagueId: string;
  seasonId: string;
  gameId: string;
  gameName: string;
  scoringPresetId?: string;
  preset?: LeagueScoringPresetDTO;
  championships: ChampionshipConfig[];
}

export interface ILeagueScoringConfigPresenter
  extends Presenter<LeagueScoringConfigData, LeagueScoringConfigViewModel> {}