Filter out metered line items from billing schema

This update refines the process of creating a billing schema by filtering out metered line items. The change is necessary as metered line items can be shared across different plans, potentially causing conflicts or duplicates in the schema.
This commit is contained in:
gbuomprisco
2024-06-18 01:06:08 +08:00
parent fbe7ca4c9e
commit b48380eb69

View File

@@ -173,7 +173,12 @@ export const PlanSchema = z
)
.refine(
(item) => {
const ids = item.lineItems.map((item) => item.id);
// metered line items can be shared across plans
const lineItems = item.lineItems.filter(
(item) => item.type !== LineItemType.Metered,
);
const ids = lineItems.map((item) => item.id);
return ids.length === new Set(ids).size;
},