export type ProviderSport = {
  externalId: string;
  slug: string;
  name: string;
};

export type ProviderEvent = {
  externalId: string;
  sportSlug: string;
  competition: string;
  country: string;
  homeName: string;
  awayName: string;
  startsAt: string;
  isLive: boolean;
  minute?: number;
  scoreHome?: number;
  scoreAway?: number;
  markets: Array<{
    key: string;
    name: string;
    type: string;
    selections: Array<{
      key: string;
      name: string;
      odds: string;
      status: "ACTIVE" | "SUSPENDED";
    }>;
  }>;
};

export interface SportsDataProvider {
  listSports(): Promise<ProviderSport[]>;
  listEvents(input?: { liveOnly?: boolean; sportSlug?: string }): Promise<ProviderEvent[]>;
  getEventByExternalId?(externalId: string, input?: { sportSlug?: string }): Promise<ProviderEvent | null>;
  healthCheck(): Promise<{ ok: boolean; latencyMs: number; message?: string }>;
}

export type OddsProvider = SportsDataProvider;
export type LiveScoreProvider = SportsDataProvider;
