Documentation
¶
Overview ¶
Package hooks provides subscription-specific hook types and registry.
Index ¶
- type AfterAddOnAttachHook
- type AfterAddOnDetachHook
- type AfterPlanChangeHook
- type AfterSubscriptionCancelHook
- type AfterSubscriptionCreateHook
- type AfterSubscriptionPauseHook
- type AfterSubscriptionResumeHook
- type AfterSubscriptionUpdateHook
- type BeforeAddOnAttachHook
- type BeforeAddOnDetachHook
- type BeforePlanChangeHook
- type BeforeSubscriptionCancelHook
- type BeforeSubscriptionCreateHook
- type BeforeSubscriptionPauseHook
- type BeforeSubscriptionResumeHook
- type BeforeSubscriptionUpdateHook
- type OnInvoiceCreatedHook
- type OnInvoicePaidHook
- type OnPaymentFailedHook
- type OnPaymentSuccessHook
- type OnSubscriptionStatusChangeHook
- type OnTrialEndedHook
- type OnTrialEndingHook
- type OnUsageLimitApproachingHook
- type OnUsageLimitExceededHook
- type SubscriptionHookRegistry
- func (r *SubscriptionHookRegistry) ExecuteAfterPlanChange(ctx context.Context, subID, oldPlanID, newPlanID xid.ID) error
- func (r *SubscriptionHookRegistry) ExecuteAfterSubscriptionCancel(ctx context.Context, subID xid.ID) error
- func (r *SubscriptionHookRegistry) ExecuteAfterSubscriptionCreate(ctx context.Context, sub *core.Subscription) error
- func (r *SubscriptionHookRegistry) ExecuteAfterSubscriptionUpdate(ctx context.Context, sub *core.Subscription) error
- func (r *SubscriptionHookRegistry) ExecuteBeforePlanChange(ctx context.Context, subID, oldPlanID, newPlanID xid.ID) error
- func (r *SubscriptionHookRegistry) ExecuteBeforeSubscriptionCancel(ctx context.Context, subID xid.ID, immediate bool) error
- func (r *SubscriptionHookRegistry) ExecuteBeforeSubscriptionCreate(ctx context.Context, orgID, planID xid.ID) error
- func (r *SubscriptionHookRegistry) ExecuteBeforeSubscriptionUpdate(ctx context.Context, subID xid.ID, req *core.UpdateSubscriptionRequest) error
- func (r *SubscriptionHookRegistry) ExecuteOnPaymentFailed(ctx context.Context, subID, invoiceID xid.ID, amount int64, currency string, ...) error
- func (r *SubscriptionHookRegistry) ExecuteOnPaymentSuccess(ctx context.Context, subID, invoiceID xid.ID, amount int64, currency string) error
- func (r *SubscriptionHookRegistry) ExecuteOnStatusChange(ctx context.Context, subID xid.ID, ...) error
- func (r *SubscriptionHookRegistry) ExecuteOnTrialEnding(ctx context.Context, subID xid.ID, daysRemaining int) error
- func (r *SubscriptionHookRegistry) ExecuteOnUsageLimitApproaching(ctx context.Context, orgID xid.ID, metricKey string, percentUsed float64) error
- func (r *SubscriptionHookRegistry) ExecuteOnUsageLimitExceeded(ctx context.Context, orgID xid.ID, metricKey string, currentUsage, limit int64) error
- func (r *SubscriptionHookRegistry) RegisterAfterPlanChange(hook AfterPlanChangeHook)
- func (r *SubscriptionHookRegistry) RegisterAfterSubscriptionCancel(hook AfterSubscriptionCancelHook)
- func (r *SubscriptionHookRegistry) RegisterAfterSubscriptionCreate(hook AfterSubscriptionCreateHook)
- func (r *SubscriptionHookRegistry) RegisterAfterSubscriptionUpdate(hook AfterSubscriptionUpdateHook)
- func (r *SubscriptionHookRegistry) RegisterBeforePlanChange(hook BeforePlanChangeHook)
- func (r *SubscriptionHookRegistry) RegisterBeforeSubscriptionCancel(hook BeforeSubscriptionCancelHook)
- func (r *SubscriptionHookRegistry) RegisterBeforeSubscriptionCreate(hook BeforeSubscriptionCreateHook)
- func (r *SubscriptionHookRegistry) RegisterBeforeSubscriptionUpdate(hook BeforeSubscriptionUpdateHook)
- func (r *SubscriptionHookRegistry) RegisterOnPaymentFailed(hook OnPaymentFailedHook)
- func (r *SubscriptionHookRegistry) RegisterOnPaymentSuccess(hook OnPaymentSuccessHook)
- func (r *SubscriptionHookRegistry) RegisterOnStatusChange(hook OnSubscriptionStatusChangeHook)
- func (r *SubscriptionHookRegistry) RegisterOnTrialEnded(hook OnTrialEndedHook)
- func (r *SubscriptionHookRegistry) RegisterOnTrialEnding(hook OnTrialEndingHook)
- func (r *SubscriptionHookRegistry) RegisterOnUsageLimitApproaching(hook OnUsageLimitApproachingHook)
- func (r *SubscriptionHookRegistry) RegisterOnUsageLimitExceeded(hook OnUsageLimitExceededHook)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AfterAddOnAttachHook ¶
AfterAddOnAttachHook is called after attaching an add-on
type AfterAddOnDetachHook ¶
AfterAddOnDetachHook is called after detaching an add-on
type AfterPlanChangeHook ¶
AfterPlanChangeHook is called after changing plans
type AfterSubscriptionCancelHook ¶
AfterSubscriptionCancelHook is called after canceling a subscription
type AfterSubscriptionCreateHook ¶
type AfterSubscriptionCreateHook func(ctx context.Context, subscription *core.Subscription) error
AfterSubscriptionCreateHook is called after creating a subscription
type AfterSubscriptionPauseHook ¶
AfterSubscriptionPauseHook is called after pausing a subscription
type AfterSubscriptionResumeHook ¶
AfterSubscriptionResumeHook is called after resuming a subscription
type AfterSubscriptionUpdateHook ¶
type AfterSubscriptionUpdateHook func(ctx context.Context, subscription *core.Subscription) error
AfterSubscriptionUpdateHook is called after updating a subscription
type BeforeAddOnAttachHook ¶
BeforeAddOnAttachHook is called before attaching an add-on
type BeforeAddOnDetachHook ¶
BeforeAddOnDetachHook is called before detaching an add-on
type BeforePlanChangeHook ¶
BeforePlanChangeHook is called before changing plans
type BeforeSubscriptionCancelHook ¶
BeforeSubscriptionCancelHook is called before canceling a subscription
type BeforeSubscriptionCreateHook ¶
BeforeSubscriptionCreateHook is called before creating a subscription
type BeforeSubscriptionPauseHook ¶
BeforeSubscriptionPauseHook is called before pausing a subscription
type BeforeSubscriptionResumeHook ¶
BeforeSubscriptionResumeHook is called before resuming a subscription
type BeforeSubscriptionUpdateHook ¶
type BeforeSubscriptionUpdateHook func(ctx context.Context, subID xid.ID, req *core.UpdateSubscriptionRequest) error
BeforeSubscriptionUpdateHook is called before updating a subscription
type OnInvoiceCreatedHook ¶
OnInvoiceCreatedHook is called when an invoice is created
type OnInvoicePaidHook ¶
OnInvoicePaidHook is called when an invoice is paid
type OnPaymentFailedHook ¶
type OnPaymentFailedHook func(ctx context.Context, subID, invoiceID xid.ID, amount int64, currency string, failureReason string) error
OnPaymentFailedHook is called when a payment fails
type OnPaymentSuccessHook ¶
type OnPaymentSuccessHook func(ctx context.Context, subID, invoiceID xid.ID, amount int64, currency string) error
OnPaymentSuccessHook is called when a payment succeeds
type OnSubscriptionStatusChangeHook ¶
type OnSubscriptionStatusChangeHook func(ctx context.Context, subID xid.ID, oldStatus, newStatus core.SubscriptionStatus) error
OnSubscriptionStatusChangeHook is called when a subscription status changes
type OnTrialEndedHook ¶
OnTrialEndedHook is called when a trial has ended
type OnTrialEndingHook ¶
OnTrialEndingHook is called when a trial is about to end (typically 3 days before)
type OnUsageLimitApproachingHook ¶
type OnUsageLimitApproachingHook func(ctx context.Context, orgID xid.ID, metricKey string, percentUsed float64) error
OnUsageLimitApproachingHook is called when usage is approaching a limit
type OnUsageLimitExceededHook ¶
type OnUsageLimitExceededHook func(ctx context.Context, orgID xid.ID, metricKey string, currentUsage, limit int64) error
OnUsageLimitExceededHook is called when usage exceeds a limit
type SubscriptionHookRegistry ¶
type SubscriptionHookRegistry struct {
// contains filtered or unexported fields
}
SubscriptionHookRegistry manages subscription-specific hooks
func NewSubscriptionHookRegistry ¶
func NewSubscriptionHookRegistry() *SubscriptionHookRegistry
NewSubscriptionHookRegistry creates a new hook registry
func (*SubscriptionHookRegistry) ExecuteAfterPlanChange ¶
func (*SubscriptionHookRegistry) ExecuteAfterSubscriptionCancel ¶
func (*SubscriptionHookRegistry) ExecuteAfterSubscriptionCreate ¶
func (r *SubscriptionHookRegistry) ExecuteAfterSubscriptionCreate(ctx context.Context, sub *core.Subscription) error
func (*SubscriptionHookRegistry) ExecuteAfterSubscriptionUpdate ¶
func (r *SubscriptionHookRegistry) ExecuteAfterSubscriptionUpdate(ctx context.Context, sub *core.Subscription) error
func (*SubscriptionHookRegistry) ExecuteBeforePlanChange ¶
func (*SubscriptionHookRegistry) ExecuteBeforeSubscriptionCancel ¶
func (*SubscriptionHookRegistry) ExecuteBeforeSubscriptionCreate ¶
func (*SubscriptionHookRegistry) ExecuteBeforeSubscriptionUpdate ¶
func (r *SubscriptionHookRegistry) ExecuteBeforeSubscriptionUpdate(ctx context.Context, subID xid.ID, req *core.UpdateSubscriptionRequest) error
func (*SubscriptionHookRegistry) ExecuteOnPaymentFailed ¶
func (*SubscriptionHookRegistry) ExecuteOnPaymentSuccess ¶
func (*SubscriptionHookRegistry) ExecuteOnStatusChange ¶
func (r *SubscriptionHookRegistry) ExecuteOnStatusChange(ctx context.Context, subID xid.ID, oldStatus, newStatus core.SubscriptionStatus) error
func (*SubscriptionHookRegistry) ExecuteOnTrialEnding ¶
func (*SubscriptionHookRegistry) ExecuteOnUsageLimitApproaching ¶
func (*SubscriptionHookRegistry) ExecuteOnUsageLimitExceeded ¶
func (*SubscriptionHookRegistry) RegisterAfterPlanChange ¶
func (r *SubscriptionHookRegistry) RegisterAfterPlanChange(hook AfterPlanChangeHook)
func (*SubscriptionHookRegistry) RegisterAfterSubscriptionCancel ¶
func (r *SubscriptionHookRegistry) RegisterAfterSubscriptionCancel(hook AfterSubscriptionCancelHook)
func (*SubscriptionHookRegistry) RegisterAfterSubscriptionCreate ¶
func (r *SubscriptionHookRegistry) RegisterAfterSubscriptionCreate(hook AfterSubscriptionCreateHook)
func (*SubscriptionHookRegistry) RegisterAfterSubscriptionUpdate ¶
func (r *SubscriptionHookRegistry) RegisterAfterSubscriptionUpdate(hook AfterSubscriptionUpdateHook)
func (*SubscriptionHookRegistry) RegisterBeforePlanChange ¶
func (r *SubscriptionHookRegistry) RegisterBeforePlanChange(hook BeforePlanChangeHook)
func (*SubscriptionHookRegistry) RegisterBeforeSubscriptionCancel ¶
func (r *SubscriptionHookRegistry) RegisterBeforeSubscriptionCancel(hook BeforeSubscriptionCancelHook)
func (*SubscriptionHookRegistry) RegisterBeforeSubscriptionCreate ¶
func (r *SubscriptionHookRegistry) RegisterBeforeSubscriptionCreate(hook BeforeSubscriptionCreateHook)
func (*SubscriptionHookRegistry) RegisterBeforeSubscriptionUpdate ¶
func (r *SubscriptionHookRegistry) RegisterBeforeSubscriptionUpdate(hook BeforeSubscriptionUpdateHook)
func (*SubscriptionHookRegistry) RegisterOnPaymentFailed ¶
func (r *SubscriptionHookRegistry) RegisterOnPaymentFailed(hook OnPaymentFailedHook)
func (*SubscriptionHookRegistry) RegisterOnPaymentSuccess ¶
func (r *SubscriptionHookRegistry) RegisterOnPaymentSuccess(hook OnPaymentSuccessHook)
func (*SubscriptionHookRegistry) RegisterOnStatusChange ¶
func (r *SubscriptionHookRegistry) RegisterOnStatusChange(hook OnSubscriptionStatusChangeHook)
func (*SubscriptionHookRegistry) RegisterOnTrialEnded ¶
func (r *SubscriptionHookRegistry) RegisterOnTrialEnded(hook OnTrialEndedHook)
func (*SubscriptionHookRegistry) RegisterOnTrialEnding ¶
func (r *SubscriptionHookRegistry) RegisterOnTrialEnding(hook OnTrialEndingHook)
func (*SubscriptionHookRegistry) RegisterOnUsageLimitApproaching ¶
func (r *SubscriptionHookRegistry) RegisterOnUsageLimitApproaching(hook OnUsageLimitApproachingHook)
func (*SubscriptionHookRegistry) RegisterOnUsageLimitExceeded ¶
func (r *SubscriptionHookRegistry) RegisterOnUsageLimitExceeded(hook OnUsageLimitExceededHook)