mirror of
https://github.com/bitwarden/browser
synced 2025-12-18 17:23:37 +00:00
[AC-1706] Show Discounted Prices (#6668)
* Removed subscription copy from org and individual * Discount all prices in subscription components
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import { OrganizationResponse } from "../../../admin-console/models/response/organization.response";
|
||||
import { BaseResponse } from "../../../models/response/base.response";
|
||||
|
||||
import {
|
||||
BillingSubscriptionResponse,
|
||||
BillingSubscriptionUpcomingInvoiceResponse,
|
||||
BillingCustomerDiscount,
|
||||
} from "./subscription.response";
|
||||
|
||||
export class OrganizationSubscriptionResponse extends OrganizationResponse {
|
||||
@@ -11,7 +11,7 @@ export class OrganizationSubscriptionResponse extends OrganizationResponse {
|
||||
storageGb: number;
|
||||
subscription: BillingSubscriptionResponse;
|
||||
upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;
|
||||
discount: BillingCustomerDiscount;
|
||||
customerDiscount: BillingCustomerDiscount;
|
||||
expiration: string;
|
||||
expirationWithoutGracePeriod: string;
|
||||
secretsManagerBeta: boolean;
|
||||
@@ -27,10 +27,30 @@ export class OrganizationSubscriptionResponse extends OrganizationResponse {
|
||||
upcomingInvoice == null
|
||||
? null
|
||||
: new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);
|
||||
const discount = this.getResponseProperty("Discount");
|
||||
this.discount = discount == null ? null : new BillingCustomerDiscount(discount);
|
||||
const customerDiscount = this.getResponseProperty("CustomerDiscount");
|
||||
this.customerDiscount =
|
||||
customerDiscount == null ? null : new BillingCustomerDiscount(customerDiscount);
|
||||
this.expiration = this.getResponseProperty("Expiration");
|
||||
this.expirationWithoutGracePeriod = this.getResponseProperty("ExpirationWithoutGracePeriod");
|
||||
this.secretsManagerBeta = this.getResponseProperty("SecretsManagerBeta");
|
||||
}
|
||||
}
|
||||
|
||||
export class BillingCustomerDiscount extends BaseResponse {
|
||||
id: string;
|
||||
active: boolean;
|
||||
percentOff?: number;
|
||||
|
||||
constructor(response: any) {
|
||||
super(response);
|
||||
this.id = this.getResponseProperty("Id");
|
||||
this.active = this.getResponseProperty("Active");
|
||||
this.percentOff = this.getResponseProperty("PercentOff");
|
||||
}
|
||||
|
||||
discountPrice = (price: number) => {
|
||||
const discount = this !== null && this.active ? price * (this.percentOff / 100) : 0;
|
||||
|
||||
return price - discount;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ export class SubscriptionResponse extends BaseResponse {
|
||||
maxStorageGb: number;
|
||||
subscription: BillingSubscriptionResponse;
|
||||
upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;
|
||||
discount: BillingCustomerDiscount;
|
||||
license: any;
|
||||
expiration: string;
|
||||
usingInAppPurchase: boolean;
|
||||
@@ -21,13 +20,11 @@ export class SubscriptionResponse extends BaseResponse {
|
||||
this.usingInAppPurchase = this.getResponseProperty("UsingInAppPurchase");
|
||||
const subscription = this.getResponseProperty("Subscription");
|
||||
const upcomingInvoice = this.getResponseProperty("UpcomingInvoice");
|
||||
const discount = this.getResponseProperty("Discount");
|
||||
this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);
|
||||
this.upcomingInvoice =
|
||||
upcomingInvoice == null
|
||||
? null
|
||||
: new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);
|
||||
this.discount = discount == null ? null : new BillingCustomerDiscount(discount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,14 +86,3 @@ export class BillingSubscriptionUpcomingInvoiceResponse extends BaseResponse {
|
||||
this.amount = this.getResponseProperty("Amount");
|
||||
}
|
||||
}
|
||||
|
||||
export class BillingCustomerDiscount extends BaseResponse {
|
||||
id: string;
|
||||
active: boolean;
|
||||
|
||||
constructor(response: any) {
|
||||
super(response);
|
||||
this.id = this.getResponseProperty("Id");
|
||||
this.active = this.getResponseProperty("Active");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user