import type { IRaceRegistrationRepository } from '@gridpilot/racing/domain/repositories/IRaceRegistrationRepository'; export interface IsDriverRegisteredForRaceQueryParams { raceId: string; driverId: string; } export class IsDriverRegisteredForRaceQuery { constructor( private readonly registrationRepository: IRaceRegistrationRepository, ) {} /** * Read-only wrapper around IRaceRegistrationRepository.isRegistered. * Mirrors legacy isRegistered behavior. */ async execute(params: IsDriverRegisteredForRaceQueryParams): Promise { const { raceId, driverId } = params; return this.registrationRepository.isRegistered(raceId, driverId); } } export interface GetRaceRegistrationsQueryParams { raceId: string; } /** * Query object returning registered driver IDs for a race. * Mirrors legacy getRegisteredDrivers behavior. */ export class GetRaceRegistrationsQuery { constructor( private readonly registrationRepository: IRaceRegistrationRepository, ) {} async execute(params: GetRaceRegistrationsQueryParams): Promise { const { raceId } = params; return this.registrationRepository.getRegisteredDrivers(raceId); } }