import { api as api } from '../../api'; import { RaceDetailPresenter } from '../../presenters'; import { RaceDetailViewModel } from '../../view-models'; export class RaceService { constructor( private readonly apiClient = api.races, private readonly presenter = new RaceDetailPresenter() ) {} async getRaceDetail( raceId: string, driverId: string ): Promise { const dto = await this.apiClient.getDetail(raceId, driverId); return this.presenter.present(dto); } async getRacesPageData(): Promise { const dto = await this.apiClient.getPageData(); // TODO: use presenter return dto; } async getRacesTotal(): Promise { const dto = await this.apiClient.getTotal(); return dto; } } // Singleton instance export const raceService = new RaceService(); // Backward compatibility functions export async function getRaceDetail( raceId: string, driverId: string ): Promise { return raceService.getRaceDetail(raceId, driverId); } export async function getRacesPageData(): Promise { return raceService.getRacesPageData(); } export async function getRacesTotal(): Promise { return raceService.getRacesTotal(); }