from django.core.cache import cache
from django.core.management.base import BaseCommand


class Command(BaseCommand):
    help = "Bumps the version for BaZi good-days cache so old entries are ignored. Optionally purge a previous version with --purge VER."

    def add_arguments(self, parser):
        parser.add_argument(
            "--purge",
            type=int,
            help="Optional: previous version number to purge from cache (requires Redis with SCAN/UNLINK support and a custom purge implementation).",
        )

    def handle(self, *args, **options):
        current = cache.get("bz_good_days_version", 1)
        new_version = current + 1
        cache.set("bz_good_days_version", new_version, None)
        self.stdout.write(self.style.SUCCESS(f"bz_good_days_version bumped: {current} -> {new_version}"))

        purge_ver = options.get("purge")
        if purge_ver is not None:
            # Placeholder: actual purge would require direct Redis access to iterate keys by pattern
            # e.g., using django-redis client to SCAN and UNLINK keys matching f"bz:v{purge_ver}:good:*"
            self.stdout.write(
                self.style.WARNING(
                    f"Purge requested for version {purge_ver}. Implement backend-specific purge if needed."
                )
            )



