import type { ChampionshipType } from '../types/ChampionshipType';
import type { SessionType } from '../types/SessionType';
import type { PointsTable } from '../value-objects/PointsTable';
import type { BonusRule } from '../types/BonusRule';
import type { DropScorePolicy } from '../types/DropScorePolicy';

/**
 * Domain Type: ChampionshipConfig
 *
 * Pure configuration shape for a championship's scoring model.
 * This is not a value object and intentionally lives under domain/types.
 */
export interface ChampionshipConfig {
  id: string;
  name: string;
  type: ChampionshipType;
  sessionTypes: SessionType[];
  pointsTableBySessionType: Record<SessionType, PointsTable>;
  bonusRulesBySessionType?: Record<SessionType, BonusRule[]>;
  dropScorePolicy: DropScorePolicy;
}