from django.core.management.base import BaseCommand

from notifications.workflows import prepare_due_notifications


class Command(BaseCommand):
    help = "Prepara notificações de renovação e, opcionalmente, envia-as com as regras de segurança configuradas."

    def add_arguments(self, parser):
        parser.add_argument("--send", action="store_true", help="Envia as notificações preparadas imediatamente.")
        parser.add_argument("--manual", action="store_true", help="Ignora a opção global de preparação automática.")

    def handle(self, *args, **options):
        result = prepare_due_notifications(send=options["send"], automatic=not options["manual"])
        self.stdout.write(self.style.SUCCESS(
            "Preparação concluída — "
            f"criadas: {result['created']}; existentes: {result['existing']}; "
            f"enviadas: {result['sent']}; falharam: {result['failed']}; ignoradas: {result['skipped']}."
        ))
