wip
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import { inject, injectable } from 'tsyringe';
|
||||
import type { ITeamRepository } from '@gridpilot/racing/domain/repositories/ITeamRepository';
|
||||
import type { ITeamMembershipRepository } from '@gridpilot/racing/domain/repositories/ITeamMembershipRepository';
|
||||
import type { IDriverRepository } from '@gridpilot/racing/domain/repositories/IDriverRepository';
|
||||
@@ -11,15 +10,19 @@ interface DriverStatsAdapter {
|
||||
totalRaces: number;
|
||||
}
|
||||
|
||||
@injectable()
|
||||
/**
|
||||
* Use case: GetTeamsLeaderboardUseCase
|
||||
*
|
||||
* Plain constructor-injected dependencies (no decorators) to keep the
|
||||
* application layer framework-agnostic and compatible with test tooling.
|
||||
*/
|
||||
export class GetTeamsLeaderboardUseCase {
|
||||
constructor(
|
||||
@inject('ITeamRepository') private readonly teamRepository: ITeamRepository,
|
||||
@inject('ITeamMembershipRepository')
|
||||
private readonly teamRepository: ITeamRepository,
|
||||
private readonly teamMembershipRepository: ITeamMembershipRepository,
|
||||
@inject('IDriverRepository') private readonly driverRepository: IDriverRepository,
|
||||
private readonly driverRepository: IDriverRepository,
|
||||
private readonly getDriverStats: (driverId: string) => DriverStatsAdapter | null,
|
||||
public readonly presenter: ITeamsLeaderboardPresenter
|
||||
public readonly presenter: ITeamsLeaderboardPresenter,
|
||||
) {}
|
||||
|
||||
async execute(): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user