import { LeagueScoringConfigDTO } from '@/lib/types/generated/LeagueScoringConfigDTO';

/**
 * LeagueScoringConfigViewModel
 *
 * View model for league scoring configuration
 */
export class LeagueScoringConfigViewModel {
  readonly gameName: string;
  readonly scoringPresetName?: string;
  readonly dropPolicySummary?: string;
  readonly championships?: Array<{
    id: string;
    name: string;
    type: 'driver' | 'team' | 'nations' | 'trophy' | string;
    sessionTypes: string[];
    pointsPreview: Array<{ sessionType: string; position: number; points: number }>;
    bonusSummary: string[];
    dropPolicyDescription?: string;
  }>;

  constructor(dto: LeagueScoringConfigDTO) {
    this.gameName = dto.gameName;
    // These would be mapped from extended properties if available
    this.scoringPresetName = (dto as any).scoringPresetName;
    this.dropPolicySummary = (dto as any).dropPolicySummary;
    this.championships = (dto as any).championships;
  }
}