import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { DriverRepository } from '../../domain/repositories/DriverRepository'; export interface GetTotalDriversInput {} export type GetTotalDriversErrorCode = 'REPOSITORY_ERROR'; export interface GetTotalDriversResult { totalDrivers: number; } export class GetTotalDriversUseCase { constructor(private readonly driverRepository: DriverRepository) {} async execute( _input: GetTotalDriversInput, ): Promise>> { void _input; try { const drivers = await this.driverRepository.findAll(); const totalDrivers = drivers.length; return Result.ok({ totalDrivers }); } catch (error: unknown) { const message = error instanceof Error ? error.message : 'Failed to get total drivers'; return Result.err({ code: 'REPOSITORY_ERROR', details: { message }, }); } } }