/** * Application Port: ILeagueRepository * * Repository interface for League entity CRUD operations. * Defines async methods using domain entities as types. */ import { League } from '../../domain/entities/League'; export interface ILeagueRepository { /** * Find a league by ID */ findById(id: string): Promise; /** * Find all leagues */ findAll(): Promise; /** * Find leagues by owner ID */ findByOwnerId(ownerId: string): Promise; /** * Create a new league */ create(league: League): Promise; /** * Update an existing league */ update(league: League): Promise; /** * Delete a league by ID */ delete(id: string): Promise; /** * Check if a league exists by ID */ exists(id: string): Promise; /** * Search leagues by name */ searchByName(query: string): Promise; }