using System.Collections.Generic;
using EventsAppQuest.Domain.Models;

namespace EventsAppQuest.Application.Services
{
    /// <summary>
    /// Contrato para serviço de pacotes comerciais (tiers de proposta, upsell/downsell).
    /// </summary>
    public interface ICommercialPackageService
    {
        /// <summary>Pacote por id.</summary>
        ProposalCommercialPackage GetById(string packageId);

        /// <summary>Pacotes que se aplicam ao template de evento.</summary>
        IReadOnlyList<ProposalCommercialPackage> GetByTemplateId(string templateId);

        /// <summary>Pacotes disponíveis para o projeto atual (por template).</summary>
        IReadOnlyList<ProposalCommercialPackage> GetAvailableForProject(EventProject project);
    }
}
