export interface GameRunCount {
  gameId: number
  gameName: string
  gameColor: string | null
  count: number
}

export interface PokemonRanking {
  pokemonId: number
  name: string
  spriteUrl: string | null
  count: number
}

export interface DeathCause {
  cause: string
  count: number
}

export interface TypeCount {
  type: string
  count: number
}

export interface StatsResponse {
  totalRuns: number
  activeRuns: number
  completedRuns: number
  failedRuns: number
  winRate: number | null
  avgDurationDays: number | null

  runsByGame: GameRunCount[]

  totalEncounters: number
  caughtCount: number
  faintedCount: number
  missedCount: number
  catchRate: number | null
  avgEncountersPerRun: number | null

  topCaughtPokemon: PokemonRanking[]
  topEncounteredPokemon: PokemonRanking[]

  totalDeaths: number
  mortalityRate: number | null
  topDeathCauses: DeathCause[]
  avgCatchLevel: number | null
  avgFaintLevel: number | null
  typeDistribution: TypeCount[]
}
