from django.core.management.base import BaseCommand

from subscriptions.benefits import (
    revoke_seeker_subscription_benefits,
    sync_company_subscription_benefits,
    sync_seeker_subscription_benefits,
)
from subscriptions.models import CompanySubscription, SeekerSubscription


class Command(BaseCommand):
    help = 'Apply subscription benefits to all existing subscription records'

    def handle(self, *args, **options):
        seeker_count = 0
        for subscription in SeekerSubscription.objects.select_related('user', 'plan'):
            sync_seeker_subscription_benefits(subscription)
            seeker_count += 1

        company_count = 0
        for subscription in CompanySubscription.objects.select_related('company', 'plan'):
            sync_company_subscription_benefits(subscription)
            company_count += 1

        self.stdout.write(self.style.SUCCESS(
            f'Synced benefits for {seeker_count} seeker and {company_count} company subscriptions.'
        ))
