import { LeagueRepository, LeagueData } from '../ports/LeagueRepository'; export interface SearchLeaguesQuery { query: string; limit?: number; offset?: number; } export class SearchLeaguesUseCase { constructor(private readonly leagueRepository: LeagueRepository) {} async execute(query: SearchLeaguesQuery): Promise { // Validate query if (!query.query || query.query.trim() === '') { throw new Error('Search query is required'); } // Search leagues const results = await this.leagueRepository.search(query.query); // Apply limit and offset const limit = query.limit || 10; const offset = query.offset || 0; return results.slice(offset, offset + limit); } }