using BCards.Web.Models;
using BCards.Web.ViewModels;
namespace BCards.Web.Services;
public interface IDowngradeService
{
///
/// Analisa o impacto de um downgrade para um usuário
///
Task AnalyzeDowngradeImpact(string userId, PlanType newPlan);
///
/// Processa automaticamente um downgrade, suspendendo páginas necessárias
///
Task ProcessAutomaticDowngrade(string userId, PlanType newPlan);
///
/// Reativa páginas suspensas por limite quando há upgrade
///
Task ProcessAutomaticUpgrade(string userId, PlanType newPlan);
///
/// Detecta se uma mudança de plano é um downgrade
///
bool IsDowngrade(PlanType oldPlan, PlanType newPlan);
///
/// Detecta se uma mudança de plano é um upgrade
///
bool IsUpgrade(PlanType oldPlan, PlanType newPlan);
}