from django.core.management.base import BaseCommand

from notifications.workflows import retry_failed_notifications


class Command(BaseCommand):
    help = "Repete notificações falhadas cuja próxima tentativa já venceu."

    def add_arguments(self, parser):
        parser.add_argument("--limit", type=int, default=100)
        parser.add_argument("--force", action="store_true", help="Ignora a data da próxima tentativa.")

    def handle(self, *args, **options):
        result = retry_failed_notifications(limit=options["limit"], force=options["force"])
        self.stdout.write(self.style.SUCCESS(
            f"Repetição concluída — enviadas: {result['sent']}; falharam: {result['failed']}; ignoradas: {result['skipped']}."
        ))
