28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
/**
|
|
* Repository Interface: ILiveryRepository
|
|
*
|
|
* Defines operations for livery-related entities
|
|
*/
|
|
|
|
import type { DriverLivery } from '../entities/DriverLivery';
|
|
import type { LiveryTemplate } from '../entities/LiveryTemplate';
|
|
|
|
export interface ILiveryRepository {
|
|
// DriverLivery operations
|
|
findDriverLiveryById(id: string): Promise<DriverLivery | null>;
|
|
findDriverLiveriesByDriverId(driverId: string): Promise<DriverLivery[]>;
|
|
findDriverLiveryByDriverAndCar(driverId: string, carId: string): Promise<DriverLivery | null>;
|
|
findDriverLiveriesByGameId(gameId: string): Promise<DriverLivery[]>;
|
|
findDriverLiveryByDriverAndGame(driverId: string, gameId: string): Promise<DriverLivery[]>;
|
|
createDriverLivery(livery: DriverLivery): Promise<DriverLivery>;
|
|
updateDriverLivery(livery: DriverLivery): Promise<DriverLivery>;
|
|
deleteDriverLivery(id: string): Promise<void>;
|
|
|
|
// LiveryTemplate operations
|
|
findTemplateById(id: string): Promise<LiveryTemplate | null>;
|
|
findTemplatesBySeasonId(seasonId: string): Promise<LiveryTemplate[]>;
|
|
findTemplateBySeasonAndCar(seasonId: string, carId: string): Promise<LiveryTemplate | null>;
|
|
createTemplate(template: LiveryTemplate): Promise<LiveryTemplate>;
|
|
updateTemplate(template: LiveryTemplate): Promise<LiveryTemplate>;
|
|
deleteTemplate(id: string): Promise<void>;
|
|
} |