change types to include applied discounts

rename fields
This commit is contained in:
nflnkr 2023-07-24 15:36:08 +03:00
parent 19cfdbd74e
commit 40c598ce9b
6 changed files with 15 additions and 8 deletions

@ -1,6 +1,6 @@
{
"name": "@frontend/kitui",
"version": "1.0.15",
"version": "1.0.16",
"description": "test",
"main": "index.js",
"types": "index.d.ts",

@ -2,19 +2,20 @@ import { Discount } from "./discount";
export type PrivilegeCartData = {
tariffName: string;
tariffId: string;
serviceKey: string;
privilegeId: string;
description: string;
/** Цена с учетом скидок на привелегию и сервис */
price: number;
appliedPrivilegeDiscount: Discount | null;
};
export type ServiceCartData = {
serviceKey: string;
privileges: PrivilegeCartData[];
/** Цена с учетом скидок на привелегию и сервис */
price: number;
appliedServiceDiscount: Discount | null;
};
export type CartData = {
@ -22,5 +23,7 @@ export type CartData = {
priceBeforeDiscounts: number;
priceAfterDiscounts: number;
itemCount: number;
envolvedDiscounts: Discount[];
appliedCartPurchasesDiscount: Discount | null;
appliedLoyaltyDiscount: Discount | null;
allAppliedDiscounts: Discount[];
};

@ -8,7 +8,8 @@ export function applyCartDiscount(
const cartDiscount = findCartDiscount(cartData.priceAfterDiscounts, discounts);
if (cartDiscount.discount) {
cartData.priceAfterDiscounts *= cartDiscount.factor;
cartData.envolvedDiscounts.push(cartDiscount.discount);
cartData.allAppliedDiscounts.push(cartDiscount.discount);
cartData.appliedCartPurchasesDiscount = cartDiscount.discount;
}
}

@ -9,7 +9,8 @@ export function applyLoyaltyDiscount(
const loyalDiscount = findLoyaltyDiscount(purchasesAmount, discounts);
if (loyalDiscount.discount) {
cartData.priceAfterDiscounts *= loyalDiscount.factor;
cartData.envolvedDiscounts.push(loyalDiscount.discount);
cartData.allAppliedDiscounts.push(loyalDiscount.discount);
cartData.appliedLoyaltyDiscount = loyalDiscount.discount;
}
}

@ -10,7 +10,8 @@ export function applyPrivilegeDiscounts(
const privilegeDiscount = findPrivilegeDiscount(privilege.privilegeId, privilege.price, discounts);
if (privilegeDiscount.discount) {
privilege.price *= privilegeDiscount.factor;
cartData.envolvedDiscounts.push(privilegeDiscount.discount);
cartData.allAppliedDiscounts.push(privilegeDiscount.discount);
privilege.appliedPrivilegeDiscount = privilegeDiscount.discount;
}
});

@ -10,7 +10,8 @@ export function applyServiceDiscounts(
const privilegeDiscount = findServiceDiscount(privilege.serviceKey, privilege.price, discounts);
if (privilegeDiscount.discount) {
privilege.price *= privilegeDiscount.factor;
cartData.envolvedDiscounts.push(privilegeDiscount.discount);
cartData.allAppliedDiscounts.push(privilegeDiscount.discount);
service.appliedServiceDiscount = privilegeDiscount.discount;
}
});