"""Billing signals. Every signal carries ``tenant_id`` explicitly (``TENANCY.md`` ยง7). """ from django.dispatch import Signal subscription_created = Signal() # kwargs: tenant_id, plan_slug, app_slug, gateway, external_id subscription_cancelled = Signal() # kwargs: tenant_id, plan_slug, reason subscription_renewed = Signal() # kwargs: tenant_id, subscription_id payment_succeeded = Signal() # kwargs: tenant_id, invoice_id, amount payment_failed = Signal() # kwargs: tenant_id, invoice_id, error invoice_generated = Signal() # kwargs: tenant_id, invoice_id, amount invoice_paid = Signal() # kwargs: tenant_id, invoice_id, amount entitlement_changed = Signal() # kwargs: tenant_id, app, status