| import asyncio | |
| from datetime import datetime | |
| from .Model import Subscription | |
| async def deactivate_expired_subscriptions(): | |
| while True: | |
| # Find active subscriptions that have expired | |
| expired_subscriptions = await Subscription.filter( | |
| active=True, expiration_time__lt=datetime.now() | |
| ) | |
| # Deactivate all expired subscriptions | |
| for subscription in expired_subscriptions: | |
| subscription.active = False | |
| await subscription.save() | |
| # Deactivate the user if he has no plans | |
| # Run this check every hour (or adjust as needed) | |
| await asyncio.sleep(60) # 1 hour | |