/**
 * Application Use Case: GetSponsorshipPricingUseCase
 *
 * Retrieves general sponsorship pricing tiers.
 */

import type { GetSponsorshipPricingViewModel } from '../presenters/IGetSponsorshipPricingPresenter';
import { Result } from '@core/shared/application/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';

export class GetSponsorshipPricingUseCase {
  constructor() {}

  async execute(): Promise<Result<GetSponsorshipPricingViewModel, ApplicationErrorCode<'NO_ERROR'>>> {
    const viewModel: GetSponsorshipPricingViewModel = {
      pricing: [
        { id: 'tier-bronze', level: 'Bronze', price: 100, currency: 'USD' },
        { id: 'tier-silver', level: 'Silver', price: 250, currency: 'USD' },
        { id: 'tier-gold', level: 'Gold', price: 500, currency: 'USD' },
      ],
    };

    return Result.ok(viewModel);
  }
}