This commit is contained in:
2025-12-16 10:50:15 +01:00
parent 775d41e055
commit 8ed6ba1fd1
144 changed files with 5763 additions and 1985 deletions

View File

@@ -0,0 +1,20 @@
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { IGetTotalRacesPresenter, GetTotalRacesResultDTO, GetTotalRacesViewModel } from '../presenters/IGetTotalRacesPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
export interface GetTotalRacesUseCaseParams {}
export interface GetTotalRacesResultDTO {
totalRaces: number;
}
export class GetTotalRacesUseCase implements UseCase<GetTotalRacesUseCaseParams, GetTotalRacesResultDTO, GetTotalRacesViewModel, IGetTotalRacesPresenter> {
constructor(private readonly raceRepository: IRaceRepository) {}
async execute(params: GetTotalRacesUseCaseParams, presenter: IGetTotalRacesPresenter): Promise<void> {
const races = await this.raceRepository.findAll();
const dto: GetTotalRacesResultDTO = { totalRaces: races.length };
presenter.reset();
presenter.present(dto);
}
}