<?php
// ✅ Agregar headers para JSON
header('Content-Type: application/json; charset=utf-8');

// ✅ Función para logging detallado
function logMailInfo($message, $data = null)
{
    $timestamp = date('Y-m-d H:i:s');
    $logMessage = "[$timestamp] MAIL_LOG: $message";

    if ($data !== null) {
        $logMessage .= " | DATA: " . print_r($data, true);
    }

    error_log($logMessage);
}

// ✅ Log inicial
logMailInfo("=== INICIO PROCESO COTIZACIÓN ===");
logMailInfo("Datos POST recibidos", $_POST);
logMailInfo("Configuración PHP Mail", [
    'sendmail_path' => ini_get('sendmail_path'),
    'SMTP' => ini_get('SMTP'),
    'smtp_port' => ini_get('smtp_port'),
    'sendmail_from' => ini_get('sendmail_from'),
    'mail.add_x_header' => ini_get('mail.add_x_header'),
    'mail.force_extra_parameters' => ini_get('mail.force_extra_parameters')
]);

// ✅ Validaciones con logging
if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['phone']) || empty($_POST['city'])) {
    logMailInfo("ERROR: Campos obligatorios vacíos", [
        'name' => $_POST['name'] ?? 'vacío',
        'email' => $_POST['email'] ?? 'vacío',
        'phone' => $_POST['phone'] ?? 'vacío',
        'city' => $_POST['city'] ?? 'vacío'
    ]);
    echo json_encode(['success' => false, 'message' => 'Por favor, completa todos los campos obligatorios.']);
    exit;
}

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    logMailInfo("ERROR: Email inválido", ['email' => $_POST['email']]);
    echo json_encode(['success' => false, 'message' => 'El formato del email no es válido.']);
    exit;
}

if (empty($_POST['product_names']) || !is_array($_POST['product_names'])) {
    logMailInfo("ERROR: No hay productos", ['product_names' => $_POST['product_names'] ?? 'vacío']);
    echo json_encode(['success' => false, 'message' => 'No se encontraron productos para cotizar.']);
    exit;
}

$nombre = $_POST['name'];
$email = $_POST['email'];
$celular = $_POST['phone'];
$ciudad = $_POST['city'];
$product_names = $_POST['product_names'] ?? [];
$quantities = $_POST['quantities'] ?? [];
$prices = $_POST['prices'] ?? [];
$totals = $_POST['totals'] ?? [];
$grand_total = $_POST['grand_total'] ?? 0;

// ✅ ASUNTO SIN ACENTOS (más compatible) - CAMBIO PRINCIPAL
$asunto = 'Solicitud de cotizacion - Diamond';
$destinatario = 'ventas@diamondfp.com.mx';

logMailInfo("Datos procesados", [
    'nombre' => $nombre,
    'email' => $email,
    'celular' => $celular,
    'ciudad' => $ciudad,
    'total_productos' => count($product_names),
    'grand_total' => $grand_total,
    'destinatario' => $destinatario,
    'asunto' => $asunto
]);

$product_details = '';

// ✅ Logging del procesamiento de productos
logMailInfo("Procesando productos", [
    'count_names' => count($product_names),
    'count_quantities' => count($quantities),
    'count_prices' => count($prices),
    'count_totals' => count($totals)
]);

for ($i = 0; $i < count($product_names); $i++) {
    $product_name = $product_names[$i];
    $quantity = $quantities[$i] ?? 0;
    $price = $prices[$i] ?? 0;
    $total = $totals[$i] ?? 0;

    logMailInfo("Producto procesado", [
        'index' => $i,
        'name' => $product_name,
        'quantity' => $quantity,
        'price' => $price,
        'total' => $total
    ]);

    $product_details .= "<tr>
    <td class='table-td'>" . htmlspecialchars($product_name) . "</td>
    <td class='table-td text-center'>" . htmlspecialchars($quantity) . "</td>
    <td class='table-td text-center'>$" . number_format($price, 2) . "</td>
    <td class='table-td text-center'>$" . number_format($total, 2) . "</td>
    </tr>";
}

// ✅ HTML del email
$cuerpo = '<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cotizacion Diamond</title>
    <style>
        body { margin: 0; padding: 0; background-color: #f6f6f6; font-family: Arial, sans-serif; }
        .correo-container { max-width: 800px; margin: 0 auto; background-color: #ffffff; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); }
        .header-section { background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%); padding: 30px 0; text-align: center; color: #ff6e01; }
        .brand-title { font-size: 3rem; font-weight: 700; color: #ff6e01; margin: 20px 0 10px 0; }
        .content-section { padding: 40px; }
        .section-title { font-size: 1.8rem; font-weight: 600; color: #1a1a1a; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 3px solid #ff6e01; display: inline-block; }
        .info-card { background: #f8f9fa; border-left: 5px solid #ff6e01; padding: 20px; margin-bottom: 30px; border-radius: 0 8px 8px 0; }
        .info-row { display: flex; flex-wrap: wrap; margin-bottom: 15px; align-items: center; }
        .info-label { font-weight: 600; color: #1a1a1a; min-width: 120px; margin-right: 10px; }
        .info-value { color: #666; flex: 1; }
        .products-table { width: 100%; border-collapse: collapse; margin: 30px 0; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); border-radius: 8px; overflow: hidden; }
        .table-header { background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%); color: #ffffff; }
        .table-th { font-weight: 600; padding: 20px; text-align: left; border: none; }
        .table-td { padding: 18px 20px; border-bottom: 1px solid #eee; color: #333; background: #fff; }
        .table-td.text-center { text-align: center; }
        .table-total { background: #ff6e01 !important; color: white !important; font-weight: 600; }
        .footer-section { background: #1a1a1a; color: #ffffff; padding: 30px; text-align: center; }
        .contact-item { display: inline-block; margin: 0 20px; color: #ff6e01; text-decoration: none; }
    </style>
</head>
<body>
    <div class="correo-container">
        <div class="header-section">
            <div class="logo-container">
                <h1 class="brand-title">DIAMOND</h1>
                <p>Solicitud de Cotizacion</p>
            </div>
        </div>
        
        <div class="content-section">
            <div class="date-section">
                <p><strong>FECHA DE SOLICITUD:</strong> ' . date("d/m/Y H:i") . '</p>
            </div>

            <h2 class="section-title">INFORMACION DEL CLIENTE</h2>
            <div class="info-card">
                <div class="info-row">
                    <span class="info-label">👤 Nombre:</span>
                    <span class="info-value">' . htmlspecialchars($nombre) . '</span>
                </div>
                <div class="info-row">
                    <span class="info-label">📧 Email:</span>
                    <span class="info-value">' . htmlspecialchars($email) . '</span>
                </div>
                <div class="info-row">
                    <span class="info-label">📱 Telefono:</span>
                    <span class="info-value">' . htmlspecialchars($celular) . '</span>
                </div>
                <div class="info-row">
                    <span class="info-label">🏙️ Ciudad:</span>
                    <span class="info-value">' . htmlspecialchars($ciudad) . '</span>
                </div>
            </div>

            <h2 class="section-title">PRODUCTOS SOLICITADOS</h2>';

if (!empty($product_details)) {
    $cuerpo .= '
            <table class="products-table">
                <thead class="table-header">
                    <tr>
                        <th class="table-th">📦 PRODUCTO</th>
                        <th class="table-th text-center">🔢 CANTIDAD</th>
                        <th class="table-th text-center">💰 PRECIO UNIT.</th>
                        <th class="table-th text-center">💵 TOTAL</th>
                    </tr>
                </thead>
                <tbody>
                    ' . $product_details . '
                    <tr>
                        <td class="table-td table-total" colspan="3"><strong>TOTAL GENERAL:</strong></td>
                        <td class="table-td table-total text-center"><strong>$' . number_format($grand_total, 2) . '</strong></td>
                    </tr>
                </tbody>
            </table>';
} else {
    $cuerpo .= '
            <div class="no-products">
                <p>No se especificaron productos en esta solicitud.</p>
            </div>';
}

$cuerpo .= '
        </div>
        
        <div class="footer-section">
            <p><strong>¡Gracias por contactar a DIAMOND!</strong><br>
            Nos pondremos en contacto contigo a la brevedad posible.</p>
            
            <div class="contact-info">
                <span class="contact-item">📧 ventas@diamondfp.com.mx</span>
                <span class="contact-item">📱 +52 (871) 745 8549</span>
                <span class="contact-item">🌐 www.diamondfp.com.mx</span>
            </div>
        </div>
    </div>
</body>
</html>';

// ✅ Logging del contenido del email
logMailInfo("Email HTML generado", [
    'length' => strlen($cuerpo),
    'contains_products' => !empty($product_details) ? 'SÍ' : 'NO'
]);

// ✅ Configuración de headers con logging
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Diamond <' . $email . '>' . "\r\n";
$headers .= 'Reply-To: ' . $email . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";

logMailInfo("Headers configurados", [
    'headers' => $headers,
    'from_email' => $email,
    'reply_to' => $email,
    'php_version' => phpversion(),
    'asunto_sin_acentos' => $asunto
]);

// ✅ Verificar configuración del servidor
logMailInfo("Información del servidor", [
    'server_name' => $_SERVER['SERVER_NAME'] ?? 'N/A',
    'server_software' => $_SERVER['SERVER_SOFTWARE'] ?? 'N/A',
    'php_os' => PHP_OS,
    'mail_function_exists' => function_exists('mail') ? 'SÍ' : 'NO',
    'sendmail_path' => ini_get('sendmail_path'),
    'smtp_server' => ini_get('SMTP'),
    'smtp_port' => ini_get('smtp_port')
]);

// ✅ Intentar envío con logging detallado
logMailInfo("=== INICIANDO ENVÍO DE EMAIL ===");
logMailInfo("Parámetros de envío", [
    'destinatario' => $destinatario,
    'asunto' => $asunto,
    'body_length' => strlen($cuerpo),
    'headers_length' => strlen($headers)
]);

try {
    // ✅ Capturar errores antes del envío
    $error_before = error_get_last();
    logMailInfo("Error antes del envío", $error_before);

    // ✅ Envío del email
    $mail_result = mail($destinatario, $asunto, $cuerpo, $headers);

    // ✅ Capturar errores después del envío
    $error_after = error_get_last();
    logMailInfo("Error después del envío", $error_after);

    logMailInfo("Resultado del envío", [
        'mail_result' => $mail_result ? 'TRUE' : 'FALSE',
        'error_changed' => ($error_before !== $error_after) ? 'SÍ' : 'NO'
    ]);

    if ($mail_result) {
        logMailInfo("✅ EMAIL ENVIADO EXITOSAMENTE");
        echo json_encode(['success' => true, 'message' => 'Cotizacion enviada con exito. Nos pondremos en contacto contigo pronto.']);
    } else {
        logMailInfo("❌ ERROR AL ENVIAR EMAIL");

        // ✅ Información adicional de debugging
        $last_error = error_get_last();
        if ($last_error) {
            logMailInfo("Último error PHP", $last_error);
        }

        echo json_encode(['success' => false, 'message' => 'Error al enviar la cotizacion. Por favor, intenta nuevamente.']);
    }
} catch (Exception $e) {
    logMailInfo("❌ EXCEPCIÓN AL ENVIAR EMAIL", [
        'message' => $e->getMessage(),
        'code' => $e->getCode(),
        'file' => $e->getFile(),
        'line' => $e->getLine(),
        'trace' => $e->getTraceAsString()
    ]);

    echo json_encode(['success' => false, 'message' => 'Error del servidor: ' . $e->getMessage()]);
}

logMailInfo("=== FIN PROCESO COTIZACIÓN ===");
?>