1
0
mirror of https://github.com/bitwarden/server.git synced 2025-05-05 11:42:22 -05:00

PM-16517: Create personal use plan for additional storage (#5205)

* PM-16517: Create personal use plan for additional storage

* f

* f

* f

* fix

* f

---------

Co-authored-by: Jonas Hendrickx <jhendrickx@bitwarden.com>
Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
This commit is contained in:
Jonas Hendrickx 2025-05-01 19:53:03 +02:00 committed by GitHub
parent 0fa6962d17
commit 011298c9ff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 10 additions and 6 deletions

View File

@ -2,6 +2,10 @@
public static class StripeConstants public static class StripeConstants
{ {
public static class Prices
{
public const string StoragePlanPersonal = "personal-storage-gb-annually";
}
public static class AutomaticTaxStatus public static class AutomaticTaxStatus
{ {
public const string Failed = "failed"; public const string Failed = "failed";

View File

@ -38,7 +38,7 @@ public record Families2019Plan : Plan
HasPremiumAccessOption = true; HasPremiumAccessOption = true;
StripePlanId = "personal-org-annually"; StripePlanId = "personal-org-annually";
StripeStoragePlanId = "storage-gb-annually"; StripeStoragePlanId = "personal-storage-gb-annually";
StripePremiumAccessPlanId = "personal-org-premium-access-annually"; StripePremiumAccessPlanId = "personal-org-premium-access-annually";
BasePrice = 12; BasePrice = 12;
AdditionalStoragePricePerGb = 4; AdditionalStoragePricePerGb = 4;

View File

@ -37,7 +37,7 @@ public record FamiliesPlan : Plan
HasAdditionalStorageOption = true; HasAdditionalStorageOption = true;
StripePlanId = "2020-families-org-annually"; StripePlanId = "2020-families-org-annually";
StripeStoragePlanId = "storage-gb-annually"; StripeStoragePlanId = "personal-storage-gb-annually";
BasePrice = 40; BasePrice = 40;
AdditionalStoragePricePerGb = 4; AdditionalStoragePricePerGb = 4;

View File

@ -313,7 +313,7 @@ public class PremiumUserBillingService(
{ {
subscriptionItemOptionsList.Add(new SubscriptionItemOptions subscriptionItemOptionsList.Add(new SubscriptionItemOptions
{ {
Price = "storage-gb-annually", Price = StripeConstants.Prices.StoragePlanPersonal,
Quantity = storage Quantity = storage
}); });
} }

View File

@ -11,6 +11,7 @@ using Bit.Core.AdminConsole.Services;
using Bit.Core.Auth.Enums; using Bit.Core.Auth.Enums;
using Bit.Core.Auth.Models; using Bit.Core.Auth.Models;
using Bit.Core.Auth.Models.Business.Tokenables; using Bit.Core.Auth.Models.Business.Tokenables;
using Bit.Core.Billing.Constants;
using Bit.Core.Billing.Models; using Bit.Core.Billing.Models;
using Bit.Core.Billing.Models.Sales; using Bit.Core.Billing.Models.Sales;
using Bit.Core.Billing.Services; using Bit.Core.Billing.Services;
@ -45,7 +46,6 @@ namespace Bit.Core.Services;
public class UserService : UserManager<User>, IUserService, IDisposable public class UserService : UserManager<User>, IUserService, IDisposable
{ {
private const string PremiumPlanId = "premium-annually"; private const string PremiumPlanId = "premium-annually";
private const string StoragePlanId = "storage-gb-annually";
private readonly IUserRepository _userRepository; private readonly IUserRepository _userRepository;
private readonly ICipherRepository _cipherRepository; private readonly ICipherRepository _cipherRepository;
@ -1106,12 +1106,12 @@ public class UserService : UserManager<User>, IUserService, IDisposable
} }
var secret = await BillingHelpers.AdjustStorageAsync(_paymentService, user, storageAdjustmentGb, var secret = await BillingHelpers.AdjustStorageAsync(_paymentService, user, storageAdjustmentGb,
StoragePlanId); StripeConstants.Prices.StoragePlanPersonal);
await _referenceEventService.RaiseEventAsync( await _referenceEventService.RaiseEventAsync(
new ReferenceEvent(ReferenceEventType.AdjustStorage, user, _currentContext) new ReferenceEvent(ReferenceEventType.AdjustStorage, user, _currentContext)
{ {
Storage = storageAdjustmentGb, Storage = storageAdjustmentGb,
PlanName = StoragePlanId, PlanName = StripeConstants.Prices.StoragePlanPersonal,
}); });
await SaveUserAsync(user); await SaveUserAsync(user);
return secret; return secret;