import type { IRaceWithSOFPresenter, RaceWithSOFResultDTO, RaceWithSOFViewModel, } from '@gridpilot/racing/application/presenters/IRaceWithSOFPresenter'; export class RaceWithSOFPresenter implements IRaceWithSOFPresenter { private viewModel: RaceWithSOFViewModel | null = null; present(dto: RaceWithSOFResultDTO): void { this.viewModel = { id: dto.raceId, leagueId: dto.leagueId, scheduledAt: dto.scheduledAt.toISOString(), track: dto.track, trackId: dto.trackId, car: dto.car, carId: dto.carId, sessionType: dto.sessionType, status: dto.status, strengthOfField: dto.strengthOfField, registeredCount: dto.registeredCount, maxParticipants: dto.maxParticipants, participantCount: dto.participantCount, }; } getViewModel(): RaceWithSOFViewModel | null { return this.viewModel; } reset(): void { this.viewModel = null; } }