UNPKG

footballdata-api-v2

Version:
285 lines (284 loc) 6.8 kB
import APIHeader from './apiHeader'; import { CompetitionsParams, IStage } from './params'; import IPlan from './plan'; import StandingType from './standingType'; import Stage from './stage'; import Status from './status'; import Venue from './venue'; interface Result { api?: APIHeader; } export interface AreaSummary { id: number; name: string; } export interface CompetitionBase { id: number; area: AreaSummary; name: string; code: string | null; emblemUrl?: string | null; plan: IPlan; currentSeason: CompetitionSeason | null; lastUpdated: string; } export interface Winner { id: number; name: string; shortName: string | null; tla: string | null; crestUrl: string | null; } export interface Season { id: number; startDate: string; endDate: string; currentMatchday: number | null; } export interface CompetitionSeason extends Season { winner: Winner | null; } export interface Competition extends CompetitionBase { numberOfAvailableSeasons: number; } export interface CompetitionsResult extends Result { count: number; filters: CompetitionsParams; competitions: Array<Competition>; } export interface CompetitionResult extends CompetitionBase, Result { seasons: Array<CompetitionSeason> | null; } export interface Team { id: number; area: AreaSummary; name: string; shortName: string | null; tla: string | null; crestUrl: string | null; address: string | null; phone: string | null; website: string | null; email: string | null; founded: number | null; clubColors: string | null; venue: string | null; lastUpdated: string; } interface CompetitionSummary { id: number; area: AreaSummary; name: string; code: string | null; plan: IPlan; lastUpdated: string; } export interface TeamResult extends Result { count: number; filters: IStage; competition: CompetitionSummary; season: CompetitionSeason; teams: Array<Team>; } export interface TeamSummary { id: number; name: string; crestUrl: string | null; } interface Rank { position: number; team: TeamSummary; playedGames: number; won: number; draw: number; lost: number; points: number; goalsFor: number; goalsAgainst: number; goalDifference: number; } interface Standing { stage: Stage; type: StandingType; group: string | null; table: Array<Rank>; } export interface StandingResult extends Result { filters: {}; competition: CompetitionSummary; season: CompetitionSeason; standings: Array<Standing>; } interface TeamName { id: number; name: string; } interface Referee { id: number; name: string | null; nationality: string | null; } interface ScoreInfo { homeTeam: number | null; awayTeam: number | null; } interface Score { winner: string | null; duration: string; fullTime: ScoreInfo; halfTime: ScoreInfo; extraTime: ScoreInfo; penalties: ScoreInfo; } interface MatchBase { id: number; utcDate: string; status: Status; matchday: number; stage: Stage; group: string | null; lastUpdated: string; score: Score; homeTeam: TeamName; awayTeam: TeamName; referees: Array<Referee>; } interface MatchFromCompetition extends MatchBase { season: Season; } export interface MatchFromCompetitionResult extends Result { filters: { status?: Array<Status>; stage?: Array<Stage>; matchday?: string | null; }; competition: CompetitionSummary; matches: Array<MatchFromCompetition>; } interface Player { id: number; name: string; firstName: string; lastName: string | null; dateOfBirth: string; countryOfBirth: string; nationality: string; position: string; shirtNumber: number; lastUpdated: string; } interface Scorer { player: Player; team: TeamName; numberOfGoals: number; } export interface ScorerResult extends Result { count: number; filters: { limit: number; }; competition: CompetitionSummary; season: CompetitionSeason; scorers: Array<Scorer>; } interface Match extends MatchBase { competition: { id: number; name: string; }; season: CompetitionSeason; } export interface MatchesResult extends Result { count: number; filters: { dateFrom: string; dateTo: string; permission: string; status?: Array<Status>; competitions?: Array<number>; }; matches: Array<Match>; } interface MatchDetail extends Match { venue: string; } interface MatchStats { wins: number; draws: number; losses: number; } interface Head2head { numberOfMatches: number; totalGoals: number; homeTeam: MatchStats; awayTeam: MatchStats; } export interface MatchResult extends Result { head2head: Head2head; match: MatchDetail; } export interface MatchFromTeamResult extends Result { count: number; filters: { permission: string; dateFrom?: string; dateTo?: string; status?: Array<Status>; venue?: Venue; limit: number; }; matches: Array<Match>; } interface PlayerFromTeam { id: number; name: string; position: string | null; dateOfBirth: string; countryOfBirth: string; nationality: string; shirtNumber: number | null; role: string; } export interface TeamDetailResult extends Result, Team { activeCompetitions: Array<CompetitionSummary>; squad: Array<PlayerFromTeam>; } interface Area { id: number; name: string; countryCode: string; ensignUrl: string | null; parentAreaId: number | null; parentArea: string | null; } export interface AreasResult extends Result { count: number; filters: {}; areas: Array<Area>; } export interface AreaResult extends Result, Area { childAreas: Array<Area>; } export interface PlayerResult extends Result, Player { } interface MatchFromPlayer extends MatchBase { competition: { id: number; name: string; }; season: Season; } export interface MatchFromPlayerResult extends Result { count: number; filters: { permission: string; dateFrom?: string; dateTo?: string; status?: Array<Status>; competitions?: Array<number>; limit: number; }; player: Player; matches: Array<MatchFromPlayer>; } export {};