import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; import type { GetDriverTeamQueryParamsDTO, GetDriverTeamQueryResultDTO, } from '../dto/TeamCommandAndQueryDTO'; export class GetDriverTeamQuery { constructor( private readonly teamRepository: ITeamRepository, private readonly membershipRepository: ITeamMembershipRepository, ) {} async execute(params: GetDriverTeamQueryParamsDTO): Promise { const { driverId } = params; const membership = await this.membershipRepository.getActiveMembershipForDriver(driverId); if (!membership) { return null; } const team = await this.teamRepository.findById(membership.teamId); if (!team) { return null; } return { team, membership }; } }