from django.core.management.base import BaseCommand, CommandError

from notifications.workflows import send_test_email


class Command(BaseCommand):
    help = "Envia uma mensagem de teste usando a configuração atual e respeitando o modo de teste seguro."

    def add_arguments(self, parser):
        parser.add_argument("recipient", help="Email que representa o destinatário original do teste.")

    def handle(self, *args, **options):
        try:
            notification = send_test_email(options["recipient"])
        except Exception as exc:
            raise CommandError(str(exc)) from exc
        self.stdout.write(self.style.SUCCESS(
            f"Teste enviado. Modo: {notification.get_delivery_mode_display()}; destino usado: "
            f"{notification.attempts.first().recipient_used if notification.attempts.exists() else notification.recipient}."
        ))
