This commit is contained in:
John Yeo
2025-11-12 11:01:19 +00:00
parent 6a618b67a4
commit 3d47e1effa
65 changed files with 978 additions and 836 deletions

View File

@@ -5,7 +5,6 @@ import {
type FullCustomerEntitlement,
getCusEntBalance,
getStartingBalance,
notNullish,
} from "../../index.js";
import { cusEntToCusPrice } from "../productUtils/convertUtils.js";
import { getRolloverFields } from "./getRolloverFields.js";
@@ -13,10 +12,16 @@ import { getRolloverFields } from "./getRolloverFields.js";
export const cusEntToKey = ({
cusEnt,
}: {
cusEnt: FullCustomerEntitlement;
cusEnt: FullCusEntWithFullCusProduct;
}) => {
const ent = cusEnt.entitlement;
return `${ent.interval || "null"}-${ent.interval_count || 1}-${ent.feature.id}`;
// Interval
const interval = `${cusEnt.entitlement.interval_count ?? 1}:${cusEnt.entitlement.interval}`;
const planId = `${cusEnt.customer_product.product_id}`;
const usageModel = `${cusEnt.usage_allowed}`;
return `${interval}:${planId}:${usageModel}`;
};
export const cusEntToBalance = ({
@@ -94,29 +99,6 @@ export const cusEntToIncludedUsage = ({
// }
};
export const cusEntToMaxPurchase = ({
cusEnt,
entityId,
}: {
cusEnt: FullCusEntWithFullCusProduct;
entityId?: string;
}) => {
const startingBalance = cusEntToIncludedUsage({
cusEnt,
entityId,
});
const usageLimit = cusEnt.entitlement.usage_limit;
// if (cusEnt.entitlement.usage_limit) return cusEnt.entitlement.usage_limit;
// return startingBalance;
if (notNullish(usageLimit) && notNullish(startingBalance)) {
return new Decimal(usageLimit).sub(startingBalance).toNumber();
}
return 0;
};
// NEW CUS ENT UTILS
export const cusEntToGrantedBalance = ({
cusEnt,