Migrates billing module to self-contained structure: - Create app/modules/billing/services/ with subscription, stripe, admin services - Create app/modules/billing/models/ re-exporting from central location - Create app/modules/billing/schemas/ re-exporting from central location - Create app/modules/billing/tasks/ with 4 scheduled Celery tasks - Create app/modules/billing/exceptions.py with module-specific exceptions - Update definition.py with is_self_contained=True and scheduled_tasks Celery task migration: - reset_period_counters -> billing module - check_trial_expirations -> billing module - sync_stripe_status -> billing module - cleanup_stale_subscriptions -> billing module - capture_capacity_snapshot remains in legacy (will go to monitoring) Backward compatibility: - Create re-exports in app/services/ for subscription, stripe, admin services - Old import paths continue to work - Update celery_config.py to use module-defined schedules Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
31 lines
860 B
Python
31 lines
860 B
Python
# app/services/subscription_service.py
|
|
"""
|
|
Subscription service for tier-based access control.
|
|
|
|
DEPRECATED: This file is maintained for backward compatibility.
|
|
Import from app.modules.billing.services instead:
|
|
|
|
from app.modules.billing.services import subscription_service
|
|
|
|
This file re-exports the service from its new location in the billing module.
|
|
"""
|
|
|
|
# Re-export from new location for backward compatibility
|
|
from app.modules.billing.services.subscription_service import (
|
|
SubscriptionService,
|
|
subscription_service,
|
|
)
|
|
from app.modules.billing.exceptions import (
|
|
SubscriptionNotFoundException,
|
|
TierLimitExceededException,
|
|
FeatureNotAvailableException,
|
|
)
|
|
|
|
__all__ = [
|
|
"SubscriptionService",
|
|
"subscription_service",
|
|
"SubscriptionNotFoundException",
|
|
"TierLimitExceededException",
|
|
"FeatureNotAvailableException",
|
|
]
|