Files
gridpilot.gg/packages/racing/domain/repositories/IPrizeRepository.ts
2025-12-10 00:38:59 +01:00

19 lines
658 B
TypeScript

/**
* Repository Interface: IPrizeRepository
*
* Defines operations for Prize entity persistence
*/
import type { Prize, PrizeStatus } from '../entities/Prize';
export interface IPrizeRepository {
findById(id: string): Promise<Prize | null>;
findBySeasonId(seasonId: string): Promise<Prize[]>;
findByDriverId(driverId: string): Promise<Prize[]>;
findByStatus(status: PrizeStatus): Promise<Prize[]>;
findBySeasonAndPosition(seasonId: string, position: number): Promise<Prize | null>;
create(prize: Prize): Promise<Prize>;
update(prize: Prize): Promise<Prize>;
delete(id: string): Promise<void>;
exists(id: string): Promise<boolean>;
}