Files
B42/at_django_boilerplate/backend_admin/utils.py
2026-01-07 12:09:20 +05:30

49 lines
1.7 KiB
Python
Executable File

from datetime import timedelta
from django.utils import timezone
# from business.models import Subscription, SubscriptionPackage
# def assign_free_trial_subscription(business):
# """
# Assigns a free trial subscription to a business, if allowed.
# Handles expiration of old trials and avoids duplicates.
# """
# try:
# # Find the first free trial plan
# plan = SubscriptionPackage.objects.filter(
# provider='trial',
# is_free_plan=True,
# free_trial_days__gt=0
# ).first()
# if not plan:
# return {"success": False, "message": "No free trial plan available."}
# # Check for existing active trial
# existing_trial = Subscription.objects.filter(
# business=business,
# plan__provider='trial',
# status='trial'
# ).order_by('-subscribed_on').first()
# if existing_trial and existing_trial.current_period_end > timezone.now():
# return {"success": False, "message": "Active trial already exists."}
# # Mark existing trial as expired (if any)
# if existing_trial:
# existing_trial.status = 'expired'
# existing_trial.save()
# # Create new free trial
# Subscription.objects.create(
# business=business,
# plan=plan,
# status='trial',
# subscribed_on=timezone.now(),
# current_period_end=timezone.now() + timedelta(days=plan.free_trial_days)
# )
# return {"success": True, "message": f"{plan.free_trial_days}-day free trial assigned."}
# except Exception as e:
# return {"success": False, "message": f"Error assigning trial: {str(e)}"}