import type { SponsorsApiClient } from '../../api/sponsors/SponsorsApiClient'; import type { GetEntitySponsorshipPricingResultDto } from '../../api/sponsors/SponsorsApiClient'; import { SponsorshipPricingViewModel, SponsorSponsorshipsViewModel } from '../../view-models'; import type { SponsorSponsorshipsDTO } from '../../types/generated'; /** * Sponsorship Service * * Orchestrates sponsorship operations by coordinating API calls and view model creation. * All dependencies are injected via constructor. */ export class SponsorshipService { constructor( private readonly apiClient: SponsorsApiClient ) {} /** * Get sponsorship pricing with view model transformation */ async getSponsorshipPricing(): Promise { const dto = await this.apiClient.getPricing(); return new SponsorshipPricingViewModel(dto); } /** * Get sponsor sponsorships with view model transformation */ async getSponsorSponsorships(sponsorId: string): Promise { const dto = await this.apiClient.getSponsorships(sponsorId); if (!dto) { return null; } return new SponsorSponsorshipsViewModel(dto); } }