/** * Repository Interface: ISponsorshipPricingRepository * * Stores sponsorship pricing configuration for any sponsorable entity. * This allows drivers, teams, races, and leagues to define their sponsorship slots. */ import type { SponsorshipPricing } from '../value-objects/SponsorshipPricing'; import type { SponsorableEntityType } from '../entities/SponsorshipRequest'; export interface ISponsorshipPricingRepository { /** * Get pricing configuration for an entity */ findByEntity(entityType: SponsorableEntityType, entityId: string): Promise; /** * Save or update pricing configuration for an entity */ save(entityType: SponsorableEntityType, entityId: string, pricing: SponsorshipPricing): Promise; /** * Delete pricing configuration for an entity */ delete(entityType: SponsorableEntityType, entityId: string): Promise; /** * Check if entity has pricing configured */ exists(entityType: SponsorableEntityType, entityId: string): Promise; /** * Find all entities accepting sponsorship applications */ findAcceptingApplications(entityType: SponsorableEntityType): Promise>; }