• Computes a credit charge with pack expiry, FIFO consumption, and overdraft check.

    • Filters expired packs
    • Deducts from period credits first
    • Then consumes packs FIFO (earliest expiry first)
    • Removes fully consumed packs
    • Returns null if charge would exceed overdraft limit

    Pure function — no side effects.

    Parameters

    Returns node.common.apis.billing.ChargeResult | null