# app/modules/billing/__init__.py """ Billing Module - Subscription and payment management. This module provides: - Merchant-level subscription management (per merchant per platform) - Subscription tier management with TierFeatureLimit - Billing history and invoices - Stripe integration - Scheduled tasks for subscription lifecycle Routes: - Admin: /api/v1/admin/subscriptions/* - Store: /api/v1/store/billing/* - Merchant: /api/v1/merchants/billing/* Menu Items: - Admin: subscription-tiers, subscriptions, billing-history - Store: billing, invoices Usage: from app.modules.billing import billing_module from app.modules.billing.services import subscription_service, stripe_service from app.modules.billing.models import MerchantSubscription, SubscriptionTier from app.modules.billing.exceptions import TierLimitExceededException """ # Lazy imports to avoid circular dependencies # Routers and module definition are imported on-demand __all__ = [ "billing_module", "get_billing_module_with_routers", ] def __getattr__(name: str): """Lazy import to avoid circular dependencies.""" if name == "billing_module": from app.modules.billing.definition import billing_module return billing_module if name == "get_billing_module_with_routers": from app.modules.billing.definition import get_billing_module_with_routers return get_billing_module_with_routers raise AttributeError(f"module {__name__!r} has no attribute {name!r}")