import type { League } from '../../domain/entities/League'; import type { Season } from '../../domain/entities/Season'; import type { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig'; import type { Game } from '../../domain/entities/Game'; import type { LeagueScoringPresetDTO } from '../ports/LeagueScoringPresetProvider'; export interface LeagueSummaryViewModel { id: string; name: string; description: string; ownerId: string; createdAt: Date; maxDrivers: number; usedDriverSlots: number; maxTeams?: number; usedTeamSlots?: number; structureSummary: string; scoringPatternSummary?: string; timingSummary: string; scoring?: { gameId: string; gameName: string; primaryChampionshipType: string; scoringPresetId: string; scoringPresetName: string; dropPolicySummary: string; scoringPatternSummary: string; }; } export interface AllLeaguesWithCapacityAndScoringViewModel { leagues: LeagueSummaryViewModel[]; totalCount: number; } export interface LeagueEnrichedData { league: League; usedDriverSlots: number; season?: Season; scoringConfig?: LeagueScoringConfig; game?: Game; preset?: LeagueScoringPresetDTO; } export interface IAllLeaguesWithCapacityAndScoringPresenter { present(enrichedLeagues: LeagueEnrichedData[]): AllLeaguesWithCapacityAndScoringViewModel; }