Files
cfw-autumn/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToOverage.ts
2026-02-18 18:46:19 +00:00

40 lines
968 B
TypeScript

import type {
ApiBalanceBreakdownInput,
ApiBalanceInput,
} from "./apiBalanceToAllowed";
const sumValues = (values: number[]) =>
values.reduce((total, value) => total + value, 0);
export const apiBalanceBreakdownV1ToOverage = ({
apiBalanceBreakdown,
}: {
apiBalanceBreakdown: ApiBalanceBreakdownInput;
}) => {
// const overage = Math.max(
// 0,
// new Decimal(apiBalanceBreakdown.usage)
// .sub(apiBalanceBreakdown.included_grant)
// .sub(apiBalanceBreakdown.prepaid_grant)
// .toNumber(),
// );
return apiBalanceBreakdown.overage ?? 0;
};
export const apiBalanceV1ToOverage = ({
apiBalance,
}: {
apiBalance: ApiBalanceInput;
}) => {
const breakdownItems = apiBalance.breakdown ?? [];
// Sum per-breakdown overage to preserve historical overage
// when additional granted balance is added from other products
return sumValues(
breakdownItems.map((item) =>
apiBalanceBreakdownV1ToOverage({ apiBalanceBreakdown: item }),
),
);
};