1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-21 02:33:46 +00:00

[AC-1842] Secrets Manager Trial Page (#7475)

* Got trial page working without the form set up

* Set up the form to create SM subscription

* Add free SM trial page and sign up

* Conner's changes

* fixed imports

* Set isFromSecretsManagerTrial

* Fixed OrgKey location

* Add isFromSecretsManager prop to free org create

* Add LTO callout

* Switch LTO to background box

* Defect: AC-2081

* Fixed typo "Secrets Manger" to "Secrets Manager"

* Removed discount price logic for storage and secrets manager prices since they don't apply

---------

Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
Co-authored-by: Conner Turnbull <cturnbull@bitwarden.com>
This commit is contained in:
Alex Morask
2024-01-29 10:45:48 -05:00
committed by GitHub
parent 305fd39871
commit 8468dbab5b
26 changed files with 1073 additions and 146 deletions

View File

@@ -0,0 +1,45 @@
import { OrganizationResponse } from "../../admin-console/models/response/organization.response";
import { PaymentMethodType, PlanType } from "../enums";
export type OrganizationInformation = {
name: string;
billingEmail: string;
businessName?: string;
};
export type PlanInformation = {
type: PlanType;
passwordManagerSeats?: number;
subscribeToSecretsManager?: boolean;
isFromSecretsManagerTrial?: boolean;
secretsManagerSeats?: number;
secretsManagerServiceAccounts?: number;
storage?: number;
};
export type BillingInformation = {
postalCode: string;
country: string;
taxId?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
};
export type PaymentInformation = {
paymentMethod: [string, PaymentMethodType];
billing: BillingInformation;
};
export type SubscriptionInformation = {
organization: OrganizationInformation;
plan?: PlanInformation;
payment?: PaymentInformation;
};
export abstract class OrganizationBillingServiceAbstraction {
purchaseSubscription: (subscription: SubscriptionInformation) => Promise<OrganizationResponse>;
startFree: (subscription: SubscriptionInformation) => Promise<OrganizationResponse>;
}