base setup
This commit is contained in:
49
at_django_boilerplate/backend_admin/utils.py
Executable file
49
at_django_boilerplate/backend_admin/utils.py
Executable file
@@ -0,0 +1,49 @@
|
||||
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)}"}
|
||||
Reference in New Issue
Block a user