import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; import type { ITotalDriversPresenter, TotalDriversResultDTO } from '../presenters/ITotalDriversPresenter'; import type { UseCase } from '@core/shared/application/UseCase'; /** * Use Case for retrieving total number of drivers. */ export class GetTotalDriversUseCase implements UseCase { constructor(private readonly driverRepository: IDriverRepository) {} async execute(_input: void, presenter: ITotalDriversPresenter): Promise { presenter.reset(); const drivers = await this.driverRepository.findAll(); const dto: TotalDriversResultDTO = { totalDrivers: drivers.length, }; presenter.present(dto); } }