mirror of
https://github.com/bitwarden/browser
synced 2025-12-22 11:13:46 +00:00
* [AC-1423] Update organization subscription cloud page (#5614) * [AC-1423] Add ProgressModule to shared.module.ts * [AC-1423] Update cloud subscription page styles - Remove bootstrap styles - Use CL components where applicable - Use CL typography directives - Update heading levels to prepare for new SM sections * [AC-1423] Add usePasswordManager boolean to organization domain * [AC-1423] Introduce BitwardenProductType enum * [AC-1423] Update Organization subscription line items - Add product type prefix - Indent addon services like additional storage and service accounts - Show line items for free plans * [AC-1420] Add Secrets Manager subscribe component (#5617) * [AC-1418] Add secrets manager manage subscription component (#5661) * add additional properties (#5743) * Allow autoscale limits to be removed, update naming (#5781) * [AC-1488] Store Organization.SmServiceAccounts as total not additional (#5784) * Allow autoscale limits to be removed, update naming * Display additional service accounts only * [AC-1531] Fix SM subscribe component not showing in free org billing tab (#5848) --------- Co-authored-by: Shane Melton <smelton@bitwarden.com> Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Co-authored-by: Thomas Rittson <trittson@bitwarden.com> Co-authored-by: cyprain-okeke <108260115+cyprain-okeke@users.noreply.github.com> Co-authored-by: Rui Tome <rtome@bitwarden.com>
118 lines
5.0 KiB
TypeScript
118 lines
5.0 KiB
TypeScript
import { ProductType } from "../../../enums";
|
|
import { BaseResponse } from "../../../models/response/base.response";
|
|
import { BitwardenProductType, PlanType } from "../../enums";
|
|
|
|
export class PlanResponse extends BaseResponse {
|
|
type: PlanType;
|
|
product: ProductType;
|
|
bitwardenProduct: BitwardenProductType;
|
|
name: string;
|
|
isAnnual: boolean;
|
|
nameLocalizationKey: string;
|
|
descriptionLocalizationKey: string;
|
|
canBeUsedByBusiness: boolean;
|
|
baseSeats: number;
|
|
baseStorageGb: number;
|
|
maxCollections: number;
|
|
maxUsers: number;
|
|
|
|
hasAdditionalSeatsOption: boolean;
|
|
maxAdditionalSeats: number;
|
|
hasAdditionalStorageOption: boolean;
|
|
maxAdditionalStorage: number;
|
|
hasPremiumAccessOption: boolean;
|
|
trialPeriodDays: number;
|
|
|
|
hasSelfHost: boolean;
|
|
hasPolicies: boolean;
|
|
hasGroups: boolean;
|
|
hasDirectory: boolean;
|
|
hasEvents: boolean;
|
|
hasTotp: boolean;
|
|
has2fa: boolean;
|
|
hasApi: boolean;
|
|
hasSso: boolean;
|
|
hasResetPassword: boolean;
|
|
usersGetPremium: boolean;
|
|
|
|
upgradeSortOrder: number;
|
|
displaySortOrder: number;
|
|
legacyYear: number;
|
|
disabled: boolean;
|
|
|
|
stripePlanId: string;
|
|
stripeSeatPlanId: string;
|
|
stripeStoragePlanId: string;
|
|
stripePremiumAccessPlanId: string;
|
|
basePrice: number;
|
|
seatPrice: number;
|
|
additionalStoragePricePerGb: number;
|
|
premiumAccessOptionPrice: number;
|
|
|
|
// SM only
|
|
additionalPricePerServiceAccount: number;
|
|
baseServiceAccount: number;
|
|
maxServiceAccount: number;
|
|
hasAdditionalServiceAccountOption: boolean;
|
|
maxProjects: number;
|
|
maxAdditionalServiceAccounts: number;
|
|
stripeServiceAccountPlanId: string;
|
|
|
|
constructor(response: any) {
|
|
super(response);
|
|
this.type = this.getResponseProperty("Type");
|
|
this.product = this.getResponseProperty("Product");
|
|
this.name = this.getResponseProperty("Name");
|
|
this.isAnnual = this.getResponseProperty("IsAnnual");
|
|
this.nameLocalizationKey = this.getResponseProperty("NameLocalizationKey");
|
|
this.descriptionLocalizationKey = this.getResponseProperty("DescriptionLocalizationKey");
|
|
this.canBeUsedByBusiness = this.getResponseProperty("CanBeUsedByBusiness");
|
|
this.baseSeats = this.getResponseProperty("BaseSeats");
|
|
this.baseStorageGb = this.getResponseProperty("BaseStorageGb");
|
|
this.maxCollections = this.getResponseProperty("MaxCollections");
|
|
this.maxUsers = this.getResponseProperty("MaxUsers");
|
|
this.hasAdditionalSeatsOption = this.getResponseProperty("HasAdditionalSeatsOption");
|
|
this.maxAdditionalSeats = this.getResponseProperty("MaxAdditionalSeats");
|
|
this.hasAdditionalStorageOption = this.getResponseProperty("HasAdditionalStorageOption");
|
|
this.maxAdditionalStorage = this.getResponseProperty("MaxAdditionalStorage");
|
|
this.hasPremiumAccessOption = this.getResponseProperty("HasPremiumAccessOption");
|
|
this.trialPeriodDays = this.getResponseProperty("TrialPeriodDays");
|
|
this.hasSelfHost = this.getResponseProperty("HasSelfHost");
|
|
this.hasPolicies = this.getResponseProperty("HasPolicies");
|
|
this.hasGroups = this.getResponseProperty("HasGroups");
|
|
this.hasDirectory = this.getResponseProperty("HasDirectory");
|
|
this.hasEvents = this.getResponseProperty("HasEvents");
|
|
this.hasTotp = this.getResponseProperty("HasTotp");
|
|
this.has2fa = this.getResponseProperty("Has2fa");
|
|
this.hasApi = this.getResponseProperty("HasApi");
|
|
this.hasSso = this.getResponseProperty("HasSso");
|
|
this.hasResetPassword = this.getResponseProperty("HasResetPassword");
|
|
this.usersGetPremium = this.getResponseProperty("UsersGetPremium");
|
|
this.upgradeSortOrder = this.getResponseProperty("UpgradeSortOrder");
|
|
this.displaySortOrder = this.getResponseProperty("SortOrder");
|
|
this.legacyYear = this.getResponseProperty("LegacyYear");
|
|
this.disabled = this.getResponseProperty("Disabled");
|
|
this.stripePlanId = this.getResponseProperty("StripePlanId");
|
|
this.stripeSeatPlanId = this.getResponseProperty("StripeSeatPlanId");
|
|
this.stripeStoragePlanId = this.getResponseProperty("StripeStoragePlanId");
|
|
this.stripePremiumAccessPlanId = this.getResponseProperty("StripePremiumAccessPlanId");
|
|
this.basePrice = this.getResponseProperty("BasePrice");
|
|
this.seatPrice = this.getResponseProperty("SeatPrice");
|
|
this.additionalStoragePricePerGb = this.getResponseProperty("AdditionalStoragePricePerGb");
|
|
this.premiumAccessOptionPrice = this.getResponseProperty("PremiumAccessOptionPrice");
|
|
|
|
this.bitwardenProduct = this.getResponseProperty("BitwardenProduct");
|
|
this.additionalPricePerServiceAccount = this.getResponseProperty(
|
|
"AdditionalPricePerServiceAccount"
|
|
);
|
|
this.baseServiceAccount = this.getResponseProperty("BaseServiceAccount");
|
|
this.maxServiceAccount = this.getResponseProperty("MaxServiceAccount");
|
|
this.hasAdditionalServiceAccountOption = this.getResponseProperty(
|
|
"HasAdditionalServiceAccountOption"
|
|
);
|
|
this.maxProjects = this.getResponseProperty("MaxProjects");
|
|
this.maxAdditionalServiceAccounts = this.getResponseProperty("MaxAdditionalServiceAccounts");
|
|
this.stripeServiceAccountPlanId = this.getResponseProperty("StripeServiceAccountPlanId");
|
|
}
|
|
}
|