from datetime import timedelta

from django.core.management.base import BaseCommand
from django.utils import timezone

from app_nutzer.models import NutzerAnmeldungIP


class Command(BaseCommand):
    help = 'Loescht IP-Adressen aus dem Anmelde-Log, die aelter als N Tage sind. Der Log selbst bleibt.'

    def add_arguments(self, parser):
        parser.add_argument('--tage', type=int, default=90, help='Aufbewahrungsdauer in Tagen (Standard 90, 0 = alle)')

    def handle(self, *args, **options):
        grenze = timezone.now() - timedelta(days=options['tage'])
        anzahl, _ = NutzerAnmeldungIP.objects.filter(anmeldung__zeitpunkt__lt=grenze).delete()
        self.stdout.write(self.style.SUCCESS(f'{anzahl} IP-Eintraege geloescht (aelter als {options["tage"]} Tage).'))
