import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; import type { AsyncUseCase } from '@core/shared/application'; import { Result } from '@core/shared/application/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { GetLeagueOwnerSummaryOutputPort } from '../ports/output/GetLeagueOwnerSummaryOutputPort'; export interface GetLeagueOwnerSummaryUseCaseParams { ownerId: string; } export class GetLeagueOwnerSummaryUseCase implements AsyncUseCase { constructor(private readonly driverRepository: IDriverRepository) {} async execute(params: GetLeagueOwnerSummaryUseCaseParams): Promise>> { const driver = await this.driverRepository.findById(params.ownerId); const summary = driver ? { driver: { id: driver.id, iracingId: driver.iracingId.toString(), name: driver.name.toString(), country: driver.country.toString(), bio: driver.bio?.toString(), joinedAt: driver.joinedAt.toDate().toISOString() }, rating: 0, rank: 0 } : null; return Result.ok({ summary }); } }