diff --git a/modules/routes/routeBilling.py b/modules/routes/routeBilling.py index 058038c0..d193f9bb 100644 --- a/modules/routes/routeBilling.py +++ b/modules/routes/routeBilling.py @@ -332,7 +332,7 @@ def _getStripeClient(): def _creditStripeSessionIfNeeded(billingInterface, session: Dict[str, Any], eventId: Optional[str] = None) -> CheckoutConfirmResponse: """Credit balance from Stripe Checkout session if not already credited.""" - from .billingWebhookHandler import creditStripeSessionIfNeeded + from modules.serviceCenter.services.serviceBilling.billingWebhookHandler import creditStripeSessionIfNeeded return creditStripeSessionIfNeeded(billingInterface, session, eventId, CheckoutConfirmResponse) @@ -1079,13 +1079,13 @@ async def stripeWebhook( def handleSubscriptionCheckoutCompleted(session, eventId: str) -> None: """Handle checkout.session.completed for mode=subscription.""" - from .billingWebhookHandler import handleSubscriptionCheckoutCompleted as _handler + from modules.serviceCenter.services.serviceBilling.billingWebhookHandler import handleSubscriptionCheckoutCompleted as _handler _handler(session, eventId, getRootInterface) def _handleSubscriptionWebhook(event) -> None: """Process Stripe subscription webhook events.""" - from .billingWebhookHandler import handleSubscriptionWebhook as _handler + from modules.serviceCenter.services.serviceBilling.billingWebhookHandler import handleSubscriptionWebhook as _handler _handler(event, getRootInterface) diff --git a/modules/routes/billingWebhookHandler.py b/modules/serviceCenter/services/serviceBilling/billingWebhookHandler.py similarity index 99% rename from modules/routes/billingWebhookHandler.py rename to modules/serviceCenter/services/serviceBilling/billingWebhookHandler.py index ecfe37b4..8e765cc7 100644 --- a/modules/routes/billingWebhookHandler.py +++ b/modules/serviceCenter/services/serviceBilling/billingWebhookHandler.py @@ -2,7 +2,7 @@ # All rights reserved. """ Stripe webhook and subscription business logic for billing. -Extracted from routeBilling.py for maintainability. +Handles checkout credit, subscription lifecycle transitions, and invoice events. """ import logging