Files
cfw-autumn/shared/utils/cusEntUtils/balanceUtils/cusEntsToUsage.ts
2026-01-16 14:37:41 +00:00

29 lines
874 B
TypeScript

import { Decimal } from "decimal.js";
import type { FullCusEntWithFullCusProduct } from "../../../models/cusProductModels/cusEntModels/cusEntWithProduct";
import { nullish } from "../../utils";
import { cusEntsToBalance } from "./cusEntsToBalance";
import { cusEntsToPrepaidQuantity } from "./cusEntsToPrepaidQuantity";
import { cusEntsToGrantedBalance } from "./grantedBalanceUtils/cusEntsToGrantedBalance";
export const cusEntsToUsage = ({
cusEnts,
entityId,
}: {
cusEnts: FullCusEntWithFullCusProduct[];
entityId?: string;
}) => {
const grantedBalance = cusEntsToGrantedBalance({ cusEnts, entityId });
const prepaidQuantity = cusEntsToPrepaidQuantity({
cusEnts,
sumAcrossEntities: nullish(entityId),
});
const balance = cusEntsToBalance({ cusEnts, entityId });
return new Decimal(grantedBalance)
.add(prepaidQuantity)
.sub(balance)
.toNumber();
};