from django.core.management import BaseCommand
from subscription.models import Subscription
from apps.order.models import Order
from progressbar import ProgressBar
from django.conf import settings


class Command(BaseCommand):
    help = 'Add subscription to pending orders'

    def handle(self, *args, **options):
        queryset = Subscription.objects.filter(status__in=[Subscription.ACTIVE, Subscription.PAUSED]).distinct()
        progress = ProgressBar(max_value=queryset.count())
        count = 0
        no_order = set()

        for subscription in queryset.all():
            order = Order.objects.filter(
                user=subscription.user,
                lines__product=subscription.product,
                subscription__isnull=True,
                status=settings.ORDER_STATUS_PENDING
            ).first()
            if not order:
                no_order.add(subscription.pk)
            order.subscription = subscription
            order.save()
            count += 1
            progress.update(count)
        print(no_order)
