import type { IRaceRegistrationRepository } from '@gridpilot/racing/domain/repositories/IRaceRegistrationRepository'; import type { GetRaceRegistrationsQueryParamsDTO } from '../dto/RaceRegistrationQueryDTO'; import type { IRaceRegistrationsPresenter } from '../presenters/IRaceRegistrationsPresenter'; /** * Use Case: GetRaceRegistrationsUseCase * * Returns registered driver IDs for a race. * Orchestrates domain logic and delegates presentation to the presenter. */ export class GetRaceRegistrationsUseCase { constructor( private readonly registrationRepository: IRaceRegistrationRepository, public readonly presenter: IRaceRegistrationsPresenter, ) {} async execute(params: GetRaceRegistrationsQueryParamsDTO): Promise { const { raceId } = params; const registeredDriverIds = await this.registrationRepository.getRegisteredDrivers(raceId); this.presenter.present(registeredDriverIds); } }