football-data-api-client
Version:
TypeScript client for football-data API
78 lines (69 loc) • 1.67 kB
text/typescript
import { PaginationParams } from './api.types';
import { Area, Competition, Season } from './competition.types';
import { Team } from './team.types';
export interface Match {
id: number;
area: Area;
competition: Competition;
season: Season;
utcDate: string;
status: MatchStatus;
matchday?: number;
stage?: string;
group?: string;
lastUpdated: string;
homeTeam: TeamInMatch;
awayTeam: TeamInMatch;
score: Score;
referees?: Referee[];
venue?: string;
}
export interface TeamInMatch {
id: number;
name: string;
shortName?: string;
tla?: string;
crest?: string;
coach?: {
id?: number;
name?: string;
nationality?: string;
};
}
export interface Score {
winner?: 'HOME_TEAM' | 'AWAY_TEAM' | 'DRAW' | null;
duration?: 'REGULAR' | 'EXTRA_TIME' | 'PENALTIES';
fullTime: ScoreDetail;
halfTime: ScoreDetail;
extraTime?: ScoreDetail;
penalties?: ScoreDetail;
}
export interface ScoreDetail {
home?: number | null;
away?: number | null;
}
export interface Referee {
id: number;
name: string;
type: string;
nationality?: string;
}
export type MatchStatus = 'SCHEDULED' | 'TIMED' | 'IN_PLAY' | 'PAUSED' | 'FINISHED' | 'SUSPENDED' | 'POSTPONED' | 'CANCELLED' | 'AWARDED';
export interface MatchListParams extends PaginationParams {
competitions?: string | number[];
dateFrom?: string;
dateTo?: string;
status?: MatchStatus | MatchStatus[];
stage?: string;
matchday?: number;
group?: string;
season?: string | number;
}
export interface MatchResponse {
count: number;
matches: Match[];
filters: Record<string, any>;
}
export interface MatchDetailParams {
id: number | string;
}