diff --git a/package.json b/package.json index 34423da..48fd8e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@frontend/kitui", - "version": "1.0.15", + "version": "1.0.16", "description": "test", "main": "index.js", "types": "index.d.ts", diff --git a/src/model/cart.ts b/src/model/cart.ts index b59847e..7dfac85 100644 --- a/src/model/cart.ts +++ b/src/model/cart.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[]; }; diff --git a/src/utils/cart/cartDiscount.ts b/src/utils/cart/cartDiscount.ts index 913c4b7..00479ca 100644 --- a/src/utils/cart/cartDiscount.ts +++ b/src/utils/cart/cartDiscount.ts @@ -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; } } diff --git a/src/utils/cart/loyaltyDiscount.ts b/src/utils/cart/loyaltyDiscount.ts index a99f6c1..bb5d99a 100644 --- a/src/utils/cart/loyaltyDiscount.ts +++ b/src/utils/cart/loyaltyDiscount.ts @@ -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; } } diff --git a/src/utils/cart/privilegeDiscount.ts b/src/utils/cart/privilegeDiscount.ts index e734d3a..34d3ff7 100644 --- a/src/utils/cart/privilegeDiscount.ts +++ b/src/utils/cart/privilegeDiscount.ts @@ -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; } }); diff --git a/src/utils/cart/serviceDiscount.ts b/src/utils/cart/serviceDiscount.ts index 292fe34..7d3e29d 100644 --- a/src/utils/cart/serviceDiscount.ts +++ b/src/utils/cart/serviceDiscount.ts @@ -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; } });