import type { RaceEvent } from '../entities/RaceEvent';

export interface IRaceEventRepository {
  findById(id: string): Promise<RaceEvent | null>;
  findAll(): Promise<RaceEvent[]>;
  findBySeasonId(seasonId: string): Promise<RaceEvent[]>;
  findByLeagueId(leagueId: string): Promise<RaceEvent[]>;
  findByStatus(status: string): Promise<RaceEvent[]>;
  findAwaitingStewardingClose(): Promise<RaceEvent[]>;
  create(raceEvent: RaceEvent): Promise<RaceEvent>;
  update(raceEvent: RaceEvent): Promise<RaceEvent>;
  delete(id: string): Promise<void>;
  exists(id: string): Promise<boolean>;
}