17 lines
700 B
TypeScript
17 lines
700 B
TypeScript
import { LeagueRepository } from '../ports/LeagueRepository';
|
|
import { DriverRepository } from '../../../racing/domain/repositories/DriverRepository';
|
|
import { LeagueEventPublisher } from '../ports/LeagueEventPublisher';
|
|
import { DemoteAdminCommand } from '../ports/DemoteAdminCommand';
|
|
|
|
export class DemoteAdminUseCase {
|
|
constructor(
|
|
private readonly leagueRepository: LeagueRepository,
|
|
private readonly driverRepository: DriverRepository,
|
|
private readonly eventPublisher: LeagueEventPublisher,
|
|
) {}
|
|
|
|
async execute(command: DemoteAdminCommand): Promise<void> {
|
|
await this.leagueRepository.updateLeagueMember(command.leagueId, command.targetDriverId, { role: 'member' });
|
|
}
|
|
}
|