from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.conf import settings


def send_contact_confirmation_to_user(message):
    """Envoie à l'utilisateur un email de confirmation de réception."""
    context = {
        "name": message.name,
        "email": message.email,
        "subject": message.subject,
    }
    subject = f"GOON – Nous avons bien reçu votre message : {message.subject}"
    html_content = render_to_string("emails/contact/confirmation_user.html", context)
    text_content = strip_tags(html_content)
    from_email = getattr(settings, "DEFAULT_FROM_EMAIL", "noreply@goon.com")
    try:
        msg = EmailMultiAlternatives(subject, text_content, from_email, [message.email])
        msg.attach_alternative(html_content, "text/html")
        msg.send()
        return True
    except Exception as e:
        print(f"Erreur envoi email confirmation contact: {e}")
        return False


def send_contact_notification_to_admin(message):
    """Notifie l'équipe (admin) qu'un nouveau message de contact a été reçu."""
    from django.utils import timezone
    context = {
        "name": message.name,
        "email": message.email,
        "phone": getattr(message, "phone", "") or "",
        "subject": message.subject,
        "message": message.message,
        "created_at": timezone.localtime(message.created_at).strftime("%d/%m/%Y à %H:%M"),
    }
    subject = f"[GOON Contact] {message.subject} – de {message.name}"
    html_content = render_to_string("emails/contact/notification_admin.html", context)
    text_content = strip_tags(html_content)
    from_email = getattr(settings, "DEFAULT_FROM_EMAIL", "noreply@goon.com")
    to_email = getattr(settings, "CONTACT_NOTIFICATION_EMAIL", None) or from_email
    try:
        msg = EmailMultiAlternatives(subject, text_content, from_email, [to_email])
        msg.attach_alternative(html_content, "text/html")
        msg.send()
        return True
    except Exception as e:
        print(f"Erreur envoi email notification admin contact: {e}")
        return False
