backend/app/cron_pocketbase.py
2024-08-04 15:43:02 +02:00

33 lines
982 B
Python

from datetime import datetime, timedelta
from pocketbase import PocketBase # Client also works the same
import asyncio
from dotenv import load_dotenv
import os
load_dotenv()
pb_admin_email = os.getenv('POCKETBASE_ADMIN_EMAIL')
pb_password = os.getenv('POCKETBASE_PASSWORD')
pb = PocketBase('http://127.0.0.1:8090')
admin_data = pb.admins.auth_with_password(pb_admin_email, pb_password)
now = datetime.now()
one_month_ago = now - timedelta(days=30)
async def update_free_trial():
data = pb.collection("users").get_full_list(query_params = {"filter": f'freeTrial = True'})
for item in data:
created_date = item.created
# Check if the created date is more than N days ago
if created_date < one_month_ago:
# Update the user record
pb.collection("users").update(item.id, {
"tier": 'Free',
"freeTrial": False,
})
asyncio.run(update_free_trial())