namespace PowderCoating.Application.Interfaces;

public interface IStripeService
{
    Task<string> CreateCheckoutSessionAsync(int companyId, int newPlan, bool isAnnual, string successUrl, string cancelUrl);
    Task<string> CreateRegistrationCheckoutSessionAsync(int plan, bool isAnnual, string email, string companyName, string successUrl, string cancelUrl);
    Task<bool> IsRegistrationCheckoutPaidAsync(string sessionId);
    Task FulfillCheckoutAsync(string sessionId);
    Task FulfillRegistrationCheckoutAsync(string sessionId, int companyId, int plan);
    Task SyncSubscriptionAsync(int companyId);
    Task<string> CreateCustomerPortalSessionAsync(string stripeCustomerId, string returnUrl);
    Task HandleWebhookAsync(string json, string stripeSignature);
}
