from django.core.management.base import BaseCommand
from extractly.models import NetworkMonitoredPage, AdsManual

class Command(BaseCommand):
    help = "Usuwa powiązania oraz rekordy manualne po odłączeniu."

    def add_arguments(self, parser):
        parser.add_argument(
            '--limit',
            type=int,
            help='Maksymalna liczba rekordów do zresetowania.'
        )

    def handle(self, *args, **options):
        qs = NetworkMonitoredPage.objects.exclude(network_ad_manual__isnull=True)
        if options['limit']:
            qs = qs[:options['limit']]

        total = qs.count()
        self.stdout.write(f"Znaleziono {total} rekordów. Rozpoczynam czyszczenie...")

        for i, page in enumerate(qs, 1):
            manual = page.network_ad_manual
            if manual is not None:
                page.network_ad_manual = None
                page.save(update_fields=['network_ad_manual'])
                manual_id = manual.id
                manual.delete()  # <- USUWAMY REKORD Z TABELI!
                self.stdout.write(f"[{i}/{total}] ✔️ ID={page.id} odłączono i USUNIĘTO manual ID={manual_id}")
            else:
                self.stdout.write(f"[{i}/{total}] ✔️ ID={page.id} nie miał powiązanego manuala")

        self.stdout.write(self.style.SUCCESS("Czyszczenie zakończone."))
