mirror of
https://github.com/bitwarden/server.git
synced 2025-04-25 14:52:21 -05:00

* Implemented tax collection for subscriptions * Cleanup for Sales Tax * Cleanup for Sales Tax * Changes a constraint to an index for checking purposes * Added and implemented a ReadById method for TaxRate * Code review fixes for Tax Rate implementation * Code review fixes for Tax Rate implementation * Made the SalesTax migration script rerunnable
34 lines
1.9 KiB
C#
34 lines
1.9 KiB
C#
using System.Threading.Tasks;
|
|
using Bit.Core.Models.Table;
|
|
using Bit.Core.Models.Business;
|
|
using Bit.Core.Enums;
|
|
|
|
namespace Bit.Core.Services
|
|
{
|
|
public interface IPaymentService
|
|
{
|
|
Task CancelAndRecoverChargesAsync(ISubscriber subscriber);
|
|
Task<string> PurchaseOrganizationAsync(Organization org, PaymentMethodType paymentMethodType,
|
|
string paymentToken, Models.StaticStore.Plan plan, short additionalStorageGb, short additionalSeats,
|
|
bool premiumAccessAddon, TaxInfo taxInfo);
|
|
Task<string> UpgradeFreeOrganizationAsync(Organization org, Models.StaticStore.Plan plan,
|
|
short additionalStorageGb, short additionalSeats, bool premiumAccessAddon, TaxInfo taxInfo);
|
|
Task<string> PurchasePremiumAsync(User user, PaymentMethodType paymentMethodType, string paymentToken,
|
|
short additionalStorageGb, TaxInfo taxInfo);
|
|
Task<string> AdjustStorageAsync(IStorableSubscriber storableSubscriber, int additionalStorage, string storagePlanId);
|
|
Task CancelSubscriptionAsync(ISubscriber subscriber, bool endOfPeriod = false,
|
|
bool skipInAppPurchaseCheck = false);
|
|
Task ReinstateSubscriptionAsync(ISubscriber subscriber);
|
|
Task<bool> UpdatePaymentMethodAsync(ISubscriber subscriber, PaymentMethodType paymentMethodType,
|
|
string paymentToken, bool allowInAppPurchases = false, TaxInfo taxInfo = null);
|
|
Task<bool> CreditAccountAsync(ISubscriber subscriber, decimal creditAmount);
|
|
Task<BillingInfo> GetBillingAsync(ISubscriber subscriber);
|
|
Task<SubscriptionInfo> GetSubscriptionAsync(ISubscriber subscriber);
|
|
Task<TaxInfo> GetTaxInfoAsync(ISubscriber subscriber);
|
|
Task SaveTaxInfoAsync(ISubscriber subscriber, TaxInfo taxInfo);
|
|
Task<TaxRate> CreateTaxRateAsync(TaxRate taxRate);
|
|
Task UpdateTaxRateAsync(TaxRate taxRate);
|
|
Task ArchiveTaxRateAsync(TaxRate taxRate);
|
|
}
|
|
}
|