Write surface for Stripe SubscriptionSchedules.
Mirrors the SubscriptionActions shape: Repo.transact → Processor
call → projection → local insert/update → event record, all inside
a single transaction with deterministic idempotency keys.
Summary
Functions
@spec cancel_schedule( Accrue.Billing.SubscriptionSchedule.t(), keyword() ) :: {:ok, Accrue.Billing.SubscriptionSchedule.t()} | {:error, term()}
@spec cancel_schedule!( Accrue.Billing.SubscriptionSchedule.t(), keyword() ) :: Accrue.Billing.SubscriptionSchedule.t()
@spec release_schedule( Accrue.Billing.SubscriptionSchedule.t(), keyword() ) :: {:ok, Accrue.Billing.SubscriptionSchedule.t()} | {:error, term()}
@spec release_schedule!( Accrue.Billing.SubscriptionSchedule.t(), keyword() ) :: Accrue.Billing.SubscriptionSchedule.t()
@spec subscribe_via_schedule(term(), [map()], keyword()) :: {:ok, Accrue.Billing.SubscriptionSchedule.t()} | {:error, term()}
@spec subscribe_via_schedule!(term(), [map()], keyword()) :: Accrue.Billing.SubscriptionSchedule.t()
@spec update_schedule(Accrue.Billing.SubscriptionSchedule.t(), map(), keyword()) :: {:ok, Accrue.Billing.SubscriptionSchedule.t()} | {:error, term()}
@spec update_schedule!(Accrue.Billing.SubscriptionSchedule.t(), map(), keyword()) :: Accrue.Billing.SubscriptionSchedule.t()