/** * Repository Interface: ISeasonSponsorshipRepository * * Defines operations for SeasonSponsorship aggregate persistence */ import type { SeasonSponsorship, SponsorshipTier } from '../entities/SeasonSponsorship'; export interface ISeasonSponsorshipRepository { findById(id: string): Promise; findBySeasonId(seasonId: string): Promise; /** * Convenience lookup for aggregating sponsorships at league level. * Implementations should rely on the denormalized leagueId where present, * falling back to joining through Seasons if needed. */ findByLeagueId(leagueId: string): Promise; findBySponsorId(sponsorId: string): Promise; findBySeasonAndTier(seasonId: string, tier: SponsorshipTier): Promise; create(sponsorship: SeasonSponsorship): Promise; update(sponsorship: SeasonSponsorship): Promise; delete(id: string): Promise; exists(id: string): Promise; }