"""Flush all blacklisted tokens."""

from django.core.management.base import BaseCommand
from rest_framework_simplejwt.token_blacklist.models import BlacklistedToken, OutstandingToken


class Command(BaseCommand):
    help = "Clear all blacklisted tokens (and optionally outstanding tokens)"

    def add_arguments(self, parser):
        parser.add_argument(
            "--all",
            action="store_true",
            help="Also clear outstanding tokens table",
        )

    def handle(self, *args, **options):
        count = BlacklistedToken.objects.count()
        BlacklistedToken.objects.all().delete()
        self.stdout.write(self.style.SUCCESS(f"Deleted {count} blacklisted tokens"))

        if options["all"]:
            out_count = OutstandingToken.objects.count()
            OutstandingToken.objects.all().delete()
            self.stdout.write(self.style.SUCCESS(f"Deleted {out_count} outstanding tokens"))
