BILL-16 write surface for Stripe SubscriptionSchedules.
Mirrors the Phase 3 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()