Files
gridpilot.gg/core/identity/application/ports/IRaceResultsProvider.ts
2025-12-29 22:27:33 +01:00

33 lines
821 B
TypeScript

/**
* Port: IRaceResultsProvider
*
* Provider interface for race results data needed for rating calculations.
* This is an application layer port that bridges racing context to identity context.
*/
export interface RaceResultData {
userId: string;
startPos: number;
finishPos: number;
incidents: number;
status: 'finished' | 'dnf' | 'dns' | 'dsq' | 'afk';
sof?: number; // Optional strength of field
}
export interface RaceResultsData {
raceId: string;
results: RaceResultData[];
}
export interface IRaceResultsProvider {
/**
* Get race results by race ID
* Returns null if race not found or no results
*/
getRaceResults(raceId: string): Promise<RaceResultsData | null>;
/**
* Check if race results exist for a race
*/
hasRaceResults(raceId: string): Promise<boolean>;
}