aboutsummaryrefslogblamecommitdiffstats
path: root/pyblackbird_cc/payments/signals.py
blob: 50d988b093c8064c3b922f9092f142e3f217e8ed (plain) (tree)
1
2
3
4
5
6
7
8
9


                                                  
                                 
                                    

                                 

                                
                                    











                                                                 
              









                                                                              






                                                                 
from datetime import timedelta

from allauth.account.signals import user_signed_up
from django.db import transaction
from django.dispatch import receiver
from django.utils import timezone

from .models import ShoppingCart
from .models import Subscription
from .models import SubscriptionPlan


@receiver(user_signed_up)
def assign_default_subscription(sender, request, user, **kwargs):
    with transaction.atomic():
        # Get or create the free plan subscription
        free_plan, _ = SubscriptionPlan.objects.get_or_create(
            name="Free Plan",
            defaults={
                "price": 0,
                "description": "Free plan description",
                "allowed_downloads": 10,
            },
        )

        # Create a SubscriptionPlan for the new user
        Subscription.objects.create(
            user=user,
            plan=free_plan,
            is_active=True,
            start_date=timezone.now(),
            end_date=timezone.now() + timedelta(days=365),  # Example: 30 days
        )


@receiver(user_signed_up)
def assign_user_a_shopping_cart(sender, request, user, **kwargs):
    with transaction.atomic():
        # Create a ShoppingCart for the new user
        ShoppingCart.objects.create(user=user)