# =============================================================================
# CONFIGURACIÓN FINAL CORRECTA PARA AWS SES
# =============================================================================

import sys
import os
import smtplib
import ssl
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime
import logging
from dotenv import load_dotenv

# Agrega la ruta absoluta al sys.path si es necesario
sys.path.append('/var/www/html/config')


# ========== CONFIGURACIÓN DE RUTAS PARA VARIABLES DE ENTORNO ==========

# Obtener el directorio donde se encuentra este script (crm/procesos/)
script_dir = os.path.dirname(os.path.abspath(__file__))  # /crm/procesos

# Devolverme al directorio crm
crm_dir = os.path.dirname(script_dir)  # /crm

# Construir la ruta hacia el archivo .env en crm/configuraciones/
env_path = os.path.join(crm_dir, "configuraciones", ".env")

# Cargar variables de entorno
if os.path.exists(env_path):
    load_dotenv(env_path)
    logging.info(f"✅ Variables de entorno cargadas desde: {env_path}")
else:
    logging.warning(f"⚠ No se encontró el archivo .env en: {env_path}")

# =============================================================================
# CONFIGURACIÓN AWS SES CON LOS DATOS CORRECTOS
# =============================================================================

""" smtp_server = "email-smtp.us-east-2.amazonaws.com"
smtp_port = 587
smtp_user = "AKIATMWSBCZ6D7D2WFWX"  # ✅ Access Key ID de SES (CORRECTO)
smtp_password = "BAYVwi3P9Ohod678D0tQizG7OUGAlF+/RePvmtf3Go+o"  # ✅ Secret Access Key de SES
sender_email = "dev-team@agencycic.com"  # ✅ Correo verificado en SES """

smtp_server = os.getenv('SMTP_HOST')
smtp_port = os.getenv('SMTP_PORT')
smtp_user = os.getenv('ACCESS_KEY')
smtp_password = os.getenv('SMTP_PASS')
sender_email = os.getenv('SMTP_USER')



def send_email_primer_contacto(datos_contacto):
    """
    Envía correo electrónico usando AWS SES con credenciales correctas
    """
    
    try:
        # Extraer datos básicos
        nombre_referido = datos_contacto.get('nombre_completo_referido', 'Ciudadano')
        correo_referido = datos_contacto.get('correo_referido')
        nombre_embajador = datos_contacto.get('nombre_embajador', 'Equipo Imparables')
        
        # Validaciones básicas
        if not correo_referido:
            return {"success": False, "message": "No se proporcionó correo electrónico del contacto"}
        
        if '@' not in correo_referido or '.' not in correo_referido:
            return {"success": False, "message": "El formato del correo electrónico no es válido"}
        
        # Debug AWS SES
        print(f"=== AWS SES CONFIGURACIÓN FINAL ===")
        print(f"Servidor: {smtp_server}")
        print(f"Puerto: {smtp_port}")
        print(f"Access Key: {smtp_user}")
        print(f"Sender: {sender_email}")
        print(f"Destinatario: {correo_referido}")
        
        # Crear mensaje
        message = MIMEMultipart("alternative")
        message["From"] = sender_email
        message["To"] = correo_referido
        message["Subject"] = "Seguimiento - Campaña de Recolección de Firmas Imparables"

        # HTML del correo - SIN datos de fecha, tiempo y resultado
        html_body = f"""
        <!DOCTYPE html>
        <html lang="es">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Seguimiento Primer Contacto</title>
            <style>
                body {{
                    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
                    background-color: #f8f9fa;
                    margin: 0;
                    padding: 20px;
                }}
                .container {{
                    max-width: 600px;
                    margin: 0 auto;
                    background-color: #ffffff;
                    border-radius: 12px;
                    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
                    overflow: hidden;
                }}
                .header {{
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px 20px;
                    text-align: center;
                }}
                .header h1 {{
                    margin: 0;
                    font-size: 28px;
                    font-weight: 300;
                }}
                .header p {{
                    margin: 5px 0 0 0;
                    opacity: 0.9;
                    font-size: 16px;
                }}
                .content {{
                    padding: 30px;
                }}
                .greeting {{
                    font-size: 18px;
                    color: #333;
                    margin-bottom: 20px;
                }}
                .highlight-box {{
                    background-color: #f8f9fa;
                    border-left: 4px solid #667eea;
                    padding: 20px;
                    margin: 20px 0;
                    border-radius: 0 8px 8px 0;
                }}
                .detail-item {{
                    margin: 10px 0;
                    font-size: 16px;
                    color: #555;
                }}
                .detail-label {{
                    font-weight: 600;
                    color: #333;
                }}
                .cta-section {{
                    text-align: center;
                    margin: 30px 0;
                    padding: 20px;
                    background-color: #f8f9fa;
                    border-radius: 8px;
                }}
                .cta-button {{
                    display: inline-block;
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 12px 30px;
                    text-decoration: none;
                    border-radius: 25px;
                    font-weight: 600;
                    margin: 10px;
                    transition: transform 0.2s;
                }}
                .cta-button:hover {{
                    transform: translateY(-2px);
                }}
                .footer {{
                    background-color: #333;
                    color: #ccc;
                    padding: 20px;
                    text-align: center;
                    font-size: 14px;
                }}
                .footer a {{
                    color: #667eea;
                    text-decoration: none;
                }}
            </style>
        </head>
        <body>
            <div class="container">
                <!-- Cabecera -->
                <div class="header">
                    <h1>🇨🇴 Imparables</h1>
                    <p>Campaña de Recolección de Firmas</p>
                </div>

                <!-- Contenido principal -->
                <div class="content">
                    <div class="greeting">
                        ¡Hola <strong style="color: #667eea;">{nombre_referido}</strong>!
                    </div>

                    <p style="font-size: 16px; line-height: 1.6; color: #555;">
                        Esperamos que te encuentres muy bien. Queremos agradecerte por el tiempo que nos dedicaste 
                        durante nuestra conversación sobre la campaña de recolección de firmas.
                    </p>

                    <!-- Información del embajador -->
                    <div class="highlight-box">
                        <h3 style="margin-top: 0; color: #333;">👋 Tu contacto en Imparables:</h3>
                        <div class="detail-item">
                            <span class="detail-label">Embajador que te contactó:</span> {nombre_embajador}
                        </div>
                    </div>

                    <p style="font-size: 16px; line-height: 1.6; color: #555;">
                        Como ciudadanos comprometidos con el cambio, sabemos que tu participación es fundamental 
                        para lograr los objetivos que nos hemos propuesto como movimiento.
                    </p>

                    <!-- Llamada a la acción -->
                    <div class="cta-section">
                        <h3 style="color: #333; margin-bottom: 15px;">¿Listo para participar?</h3>
                        <p style="margin-bottom: 20px; color: #666;">
                            Si tienes alguna pregunta o quieres conocer más detalles sobre cómo participar:
                        </p>
                        <a href="https://wa.me/573001234567?text=Hola,%20quiero%20información%20sobre%20la%20campaña" 
                           class="cta-button">💬 Escribir por WhatsApp</a>
                        <a href="mailto:{sender_email}?subject=Consulta%20sobre%20campaña" 
                           class="cta-button">📧 Enviar correo</a>
                    </div>

                    <p style="font-size: 16px; line-height: 1.6; color: #555;">
                        Recuerda que cada firma cuenta y que juntos podemos lograr el cambio que Colombia necesita.
                    </p>

                    <p style="font-size: 16px; line-height: 1.6; color: #555; margin-bottom: 30px;">
                        ¡Gracias por ser parte de este movimiento ciudadano!
                    </p>

                    <div style="border-top: 1px solid #eee; padding-top: 20px; text-align: center;">
                        <p style="font-style: italic; color: #888;">
                            "El cambio que Colombia necesita comienza con ciudadanos como tú"
                        </p>
                    </div>
                </div>

                <!-- Pie de página -->
                <div class="footer">
                    <p><strong>🇨🇴 Imparables - Movimiento Ciudadano</strong></p>
                    <p>📧 {sender_email} | 🌐 <a href="https://imparables.com.co">www.imparables.com.co</a></p>
                    <p style="font-size: 12px; margin-top: 15px; opacity: 0.8;">
                        Este es un mensaje automático. Si no deseas recibir más comunicaciones, 
                        <a href="mailto:{sender_email}?subject=Desuscribir">haz clic aquí</a>.
                    </p>
                </div>
            </div>
        </body>
        </html>
        """

        part = MIMEText(html_body, "html")
        message.attach(part)

        # =============================================================================
        # CONEXIÓN AWS SES SMTP
        # =============================================================================
        
        try:
            print("🚀 Conectando a AWS SES...")
            context = ssl.create_default_context()
            
            with smtplib.SMTP(smtp_server, smtp_port, timeout=30) as server:
                print("✅ Conexión establecida")
                server.ehlo()
                print("✅ EHLO enviado")
                
                server.starttls(context=context)
                print("✅ STARTTLS activado")
                
                server.ehlo()  # EHLO después de STARTTLS
                print("✅ EHLO después de STARTTLS")
                
                server.login(smtp_user, smtp_password)
                print("✅ Login exitoso en AWS SES")
                
                server.sendmail(sender_email, correo_referido, message.as_string())
                print(f"✅ Correo enviado exitosamente a {correo_referido}")

        except smtplib.SMTPAuthenticationError as e:
            print(f"❌ Error de autenticación: {e}")
            return {
                "success": False,
                "message": f"Error de autenticación AWS SES: {e.smtp_code} - {e.smtp_error}"
            }
        except smtplib.SMTPRecipientsRefused as e:
            print(f"❌ Destinatario rechazado: {e}")
            return {
                "success": False,
                "message": f"Destinatario rechazado: {correo_referido}. Verifica que esté en la lista de correos verificados si estás en modo sandbox."
            }
        except smtplib.SMTPServerDisconnected as e:
            print(f"❌ Servidor desconectado: {e}")
            return {
                "success": False,
                "message": "Error de conexión: El servidor SMTP se desconectó inesperadamente"
            }
        except Exception as e:
            print(f"❌ Error general: {e}")
            return {
                "success": False,
                "message": f"Error de conexión AWS SES: {str(e)}"
            }
        
        return {
            "success": True,
            "message": f"Correo enviado exitosamente a {correo_referido} vía AWS SES",
            "data": {
                "destinatario": correo_referido,
                "fecha_envio": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
                "embajador": nombre_embajador,
                "servidor": "AWS SES us-east-2",
                "access_key_usado": smtp_user[:10] + "..."  # Solo mostrar primeros 10 caracteres
            }
        }
    
    except Exception as e:
        print(f"❌ Error general: {e}")
        return {
            "success": False,
            "message": f"Error general: {str(e)}"
        }