import { BaseApiClient } from '../base/BaseApiClient'; // DTOs export type DriverDto = { id: string; name: string; avatarUrl: string; country: string; totalRaces: number; wins: number; podiums: number; rating: number; globalRank: number; consistency: number; }; export type RaceDto = { id: string; track: string; car: string; scheduledAt: string; // ISO date string isMyLeague: boolean; leagueName?: string; }; export type LeagueStandingDto = { leagueId: string; leagueName: string; position: number; points: number; totalDrivers: number; }; export type FeedItemDto = { id: string; type: string; headline: string; body: string | null; timestamp: string; // ISO date string ctaHref?: string; ctaLabel?: string; }; export type FriendDto = { id: string; name: string; avatarUrl: string; country: string; }; export type DashboardOverviewDto = { currentDriver: DriverDto; nextRace: RaceDto | null; upcomingRaces: RaceDto[]; leagueStandings: LeagueStandingDto[]; feedItems: FeedItemDto[]; friends: FriendDto[]; activeLeaguesCount: number; }; /** * Dashboard API Client * * Handles dashboard overview data aggregation. */ export class DashboardApiClient extends BaseApiClient { /** Get dashboard overview data */ getDashboardOverview(): Promise { return this.get('/dashboard/overview'); } }