league service

This commit is contained in:
2025-12-16 00:57:31 +01:00
parent 3b566c973d
commit 775d41e055
130 changed files with 4077 additions and 1036 deletions

View File

@@ -0,0 +1,22 @@
import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository';
import type { IGetLeagueSeasonsPresenter, GetLeagueSeasonsResultDTO, GetLeagueSeasonsViewModel } from '../presenters/IGetLeagueSeasonsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
export interface GetLeagueSeasonsUseCaseParams {
leagueId: string;
}
export interface GetLeagueSeasonsResultDTO {
seasons: any[];
}
export class GetLeagueSeasonsUseCase implements UseCase<GetLeagueSeasonsUseCaseParams, GetLeagueSeasonsResultDTO, GetLeagueSeasonsViewModel, IGetLeagueSeasonsPresenter> {
constructor(private readonly seasonRepository: ISeasonRepository) {}
async execute(params: GetLeagueSeasonsUseCaseParams, presenter: IGetLeagueSeasonsPresenter): Promise<void> {
const seasons = await this.seasonRepository.findByLeagueId(params.leagueId);
const dto: GetLeagueSeasonsResultDTO = { seasons };
presenter.reset();
presenter.present(dto);
}
}