import { DriverRegistrationStatusDTO } from '../dtos/DriverRegistrationStatusDTO';
import type { IDriverRegistrationStatusPresenter } from '../../../../../core/racing/application/presenters/IDriverRegistrationStatusPresenter';

export class DriverRegistrationStatusPresenter implements IDriverRegistrationStatusPresenter {
  private result: DriverRegistrationStatusDTO | null = null;

  present(isRegistered: boolean, raceId: string, driverId: string) {
    this.result = {
      isRegistered,
      raceId,
      driverId,
    };
  }

  getViewModel(): DriverRegistrationStatusDTO {
    if (!this.result) throw new Error('Presenter not presented');
    return this.result;
  }

  // For consistency with other presenters
  reset() {
    this.result = null;
  }

  get viewModel(): DriverRegistrationStatusDTO {
    return this.getViewModel();
  }
}