from django.core.management.base import BaseCommand
from django.db.models import Q

from accounts.models import User
from subscriptions.access import ensure_platform_admin_subscriptions


class Command(BaseCommand):
    help = 'Ensure all platform administrators have permanent subscriptions.'

    def handle(self, *args, **options):
        admins = User.objects.filter(Q(role=User.Role.ADMIN) | Q(is_superuser=True))
        count = 0
        for user in admins:
            ensure_platform_admin_subscriptions(user)
            count += 1
        self.stdout.write(self.style.SUCCESS(f'Permanent subscriptions ensured for {count} administrator(s).'))
