# app/tasks/celery_tasks/subscription.py """ Legacy subscription tasks. MOSTLY MIGRATED: Most tasks have been migrated to app.modules.billing.tasks. The following tasks now live in the billing module: - reset_period_counters -> app.modules.billing.tasks.subscription - check_trial_expirations -> app.modules.billing.tasks.subscription - sync_stripe_status -> app.modules.billing.tasks.subscription - cleanup_stale_subscriptions -> app.modules.billing.tasks.subscription Remaining task (to be migrated to monitoring module): - capture_capacity_snapshot """ import logging from app.core.celery_config import celery_app from app.tasks.celery_tasks.base import DatabaseTask logger = logging.getLogger(__name__) @celery_app.task( bind=True, base=DatabaseTask, name="app.tasks.celery_tasks.subscription.capture_capacity_snapshot", ) def capture_capacity_snapshot(self): """ Capture a daily snapshot of platform capacity metrics. Runs daily at midnight. TODO: Migrate to app.modules.monitoring.tasks """ from app.services.capacity_forecast_service import capacity_forecast_service with self.get_db() as db: snapshot = capacity_forecast_service.capture_daily_snapshot(db) db.commit() logger.info( f"Captured capacity snapshot: {snapshot.total_vendors} vendors, " f"{snapshot.total_products} products" ) return { "snapshot_id": snapshot.id, "snapshot_date": snapshot.snapshot_date.isoformat(), "total_vendors": snapshot.total_vendors, "total_products": snapshot.total_products, }