import type { SportType } from "@/lib/api/matches/types";
import type { MatchResponseDto } from "@/lib/api/matches/types";

// ========================
// Request DTOs
// ========================

export interface LeagueQueryParams {
  sport?: SportType;
}

export interface TeamSearchParams {
  q: string;
  sport?: SportType;
}

export interface HeadToHeadParams {
  team1: string;
  team2: string;
  limit?: number;
}

export interface TeamMatchesParams {
  page?: number;
  limit?: number;
  season?: string;
}

export interface PaginatedMatchesResponse {
  data: import("@/lib/api/matches/types").MatchResponseDto[];
  total: number;
  page: number;
  limit: number;
  totalPages: number;
}

// ========================
// Response DTOs
// ========================

export interface LeagueDto {
  id: string;
  name: string;
  code?: string;
  country?: CountryDto;
  sport?: SportType;
  season?: string;
  [key: string]: unknown;
}

export interface CountryDto {
  id: string;
  name: string;
  flag?: string;
  leagues?: LeagueDto[];
}

export interface TeamDto {
  id: string;
  name: string;
  logo?: string;
  country?: string;
  sport?: SportType;
}

export interface HeadToHeadDto {
  matches: MatchResponseDto[];
  team1Wins: number;
  team2Wins: number;
  draws: number;
  [key: string]: unknown;
}
