import { useInject } from '@/lib/di/hooks/useInject'; import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens'; import { ApiError } from '@/lib/gateways/api/base/ApiError'; import { useMutation, UseMutationOptions } from '@tanstack/react-query'; interface WithdrawFromRaceParams { raceId: string; driverId: string; } export function useWithdrawFromRace( options?: Omit, 'mutationFn'> ) { const raceService = useInject(RACE_SERVICE_TOKEN); return useMutation({ mutationFn: async (params) => { const result = await raceService.withdrawFromRace(params.raceId, params.driverId); if (result.isErr()) { const error = result.getError(); throw new ApiError(error.message, 'SERVER_ERROR', { timestamp: new Date().toISOString() }); } }, ...options, }); }