Files
cfw-autumn/shared/utils/billingUtils/invoicingUtils/descriptionUtils/fixedPriceToLineDescription.ts
John Yeo 1000c2cca3 wip
2025-12-15 13:43:55 +00:00

36 lines
1.2 KiB
TypeScript

import type { LineItemContext } from "../../../../models/billingModels/invoicingModels/lineItemContext";
import type { FixedPriceConfig } from "../../../../models/productModels/priceModels/priceConfig/fixedPriceConfig";
import type { Price } from "../../../../models/productModels/priceModels/priceModels";
import { formatAmount } from "../../../common/formatUtils/formatAmount";
import { isOneOffPrice } from "../../../productUtils/priceUtils/classifyPriceUtils";
import { lineItemToPeriodDescription } from "./lineItemToPeriodDescription";
export const fixedPriceToDescription = ({
price,
currency,
context,
}: {
price: Price; // must be fixed price
currency?: string;
context: LineItemContext;
}): string => {
const config = price.config as FixedPriceConfig;
const { productName } = context;
// biome-ignore lint/correctness/noUnusedVariables: Might be used in the future
const amount = formatAmount({ currency, amount: config.amount });
let description = `${productName} - Base Price`;
if (isOneOffPrice(price)) {
const periodDescription = lineItemToPeriodDescription({
context,
});
description = `${description} (${periodDescription})`;
}
return description;
};