import json
from datetime import datetime
import hashlib
import sys
import os
import base64
import smtplib
import ssl
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

sys.path.append('/var/www/html/config')
from cnxpdo import get_connection

from dotenv import load_dotenv
# Cargar las variables de entorno desde el archivo .env
#load_dotenv('/var/www/html/api/crm/configuraciones/.env')
script_dir = os.path.dirname(os.path.abspath(__file__))  # Directorio del script
crm_dir = os.path.dirname(script_dir)  # Sube un nivel hasta crm
env_path = os.path.join(crm_dir, "configuraciones", ".env")  # Ahora sí apunta bien

load_dotenv(env_path)

hostname = os.getenv('SMTP_HOST')
port = int(os.getenv('SMTP_PORT'))
username = os.getenv('SMTP_USER')
password = os.getenv('SMTP_PASS')
appUrl = os.getenv('PROD_IMAGE_PATH')
appName = os.getenv('APP_NAME')
senderName = os.getenv('SMTP_NOTIFY')
recipientEmail = os.getenv('Correo_Soporte')


def sendEmailSoporte(input_data):
    
    modulo_name = input_data.get('modulo_name', '').strip()
    vista_name = input_data.get('vista_name', '').strip()
    asunto = input_data.get('asunto', '').strip()
    nombre = input_data.get('nombre', '').strip()
    observacion = input_data.get('observacion', '').strip()
    
    message = MIMEMultipart("alternative")
    message["From"] = username 
    message["To"] = recipientEmail
    message["Subject"] = f"Solicitud de Soporte CRM - {asunto}"
    
    
    html_body = f"""
    <!DOCTYPE html>
    <html lang="es">
    <head>
        <style>
            body {{
                font-family: Arial, sans-serif;
                margin: 0;
                padding: 0;
                background-color: #f4f4f4;
            }}
            .container {{
                max-width: 600px;
                margin: 0 auto;
                padding: 20px;
                background-color: #fff;
                border: 1px solid #e0e0e0;
                border-radius: 5px;
            }}
            .header {{
                text-align: center;
                margin-bottom: 20px;
                color: #4CAF50;
            }}
            .header h1 {{
                margin: 0;
                font-size: 24px;
            }}
            .section-title {{
                font-weight: bold;
                color: #333;
            }}
            .content {{
                font-size: 16px;
                color: #333;
            }}
            .table {{
                width: 100%;
                border-collapse: collapse;
                margin-top: 20px;
            }}
            .table td {{
                padding: 10px;
                border: 1px solid #ddd;
            }}
            .table th {{
                padding: 10px;
                background-color: #f4f4f4;
                font-weight: bold;
                border: 1px solid #ddd;
            }}
            .footer {{
                text-align: center;
                margin-top: 20px;
                font-size: 14px;
                color: #666;
            }}
            a {{
                color: #4CAF50;
                text-decoration: none;
            }}
        </style>
    </head>
    <body>
        <div class="container">
            <div class="header">
                <h1>Solicitud de Soporte</h1>
                <p>Estimado(a) equipo de soporte,</p>
            </div>
            <div class="content">
                <p>Hemos recibido una nueva solicitud de soporte con los siguientes detalles. Por favor, revisen la información a continuación y brinden la asistencia necesaria:</p>
                <table class="table">
                    <tr>
                        <th>Vista</th>
                        <td>{vista_name}</td>
                    </tr>
                    <tr>
                        <th>Módulo</th>
                        <td>{modulo_name}</td>
                    </tr>
                    <tr>
                        <th>Nombre</th>
                        <td>{nombre}</td>
                    </tr>
                    <tr>
                        <th>Observación</th>
                        <td>{observacion}</td>
                    </tr>
                </table>
                <p>Si necesitan más información o aclaraciones, por favor no duden en contactarnos.</p>
            </div>
            <div class="footer">
                <p>Atentamente,<br><strong>Equipo de Notificaciones</strong></p>
            </div>
        </div>
    </body>
    </html>
    """
    
    part = MIMEText(html_body, "html")
    message.attach(part)

    # Conexión SMTP y envío de correo
    try:
        context = ssl.create_default_context()
        with smtplib.SMTP(hostname, port) as server:
            server.ehlo()
            server.starttls(context=context)
            server.login(username, password)
            server.sendmail(username, recipientEmail, message.as_string())

        response = {
            "success": True,
            "message": "El correo electrónico ha sido enviado correctamente."
        }
        return response

    except Exception as e:
        return {
            "success": False,
            "message": f"Error en el envío del correo electrónico: {str(e)}"
        }
    