UIKit/lib/utils/cart/calcTariffPrice.ts
nflnkr 21a3323af9 1.0.74
fix exports
add calcTariffPrice
2024-03-27 13:29:34 +03:00

32 lines
1011 B
TypeScript

import { Discount } from "../../model/discount";
import { Tariff } from "../../model/tariff";
import { calcCart } from "./calcCart";
export function calcTariffPrice(
targetTariff: Tariff,
discounts: Discount[],
purchasesAmount: number,
currentTariffs: Tariff[],
isUserNko: boolean,
userId: string,
): {
priceBeforeDiscounts: number;
priceAfterDiscounts: number;
} {
const priceBeforeDiscounts = targetTariff.price || targetTariff.privileges.reduce(
(sum, privilege) => sum + privilege.amount * privilege.price,
0
);
const cart = calcCart([...currentTariffs, targetTariff], discounts, purchasesAmount, userId, isUserNko);
const tariffCartData = cart.services.flatMap(service => service.tariffs).find(tariff => tariff.id === targetTariff._id);
if (!tariffCartData) throw new Error(`Target tariff ${targetTariff._id} not found in cart`);
return {
priceBeforeDiscounts,
priceAfterDiscounts: tariffCartData.price,
};
}