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 | |