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'; import type { Presenter } from '@core/shared/presentation'; export interface LeagueSummaryViewModel { id: string; name: string; description: string; ownerId: string; createdAt: string; maxDrivers: number; usedDriverSlots: number; maxTeams?: number; usedTeamSlots?: number; structureSummary: string; scoringPatternSummary?: string; timingSummary: string; scoring?: { gameId: string; gameName: string; primaryChampionshipType: 'driver' | 'team' | 'nations' | 'trophy'; 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 extends Presenter {}