Shared writer for advisory entitlement-summary snapshots.
Webhooks and pull refreshes both reduce to the same summary-shaped
Accrue.Billing.EntitlementSummary row. This module owns only that
observational cache write; grant decisions remain local-only.
Summary
Types
Functions
@spec write_pull(Accrue.Billing.Customer.t(), DateTime.t(), [map()], String.t()) :: {:ok, Accrue.Billing.EntitlementSummary.t() | :unchanged | :stale} | {:error, term()}
@spec write_webhook(String.t() | nil, DateTime.t() | nil, map(), atom() | String.t()) :: {:ok, Accrue.Billing.EntitlementSummary.t() | :stale | :deferred | :ignored} | {:error, term()}