<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require __DIR__ . '/vendor/autoload.php';

// CORS Headers - MUST be first
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

// Handle preflight OPTIONS request - CRITICAL for CORS
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

// Logging
$logFile = __DIR__ . '/email_omra_ramadan_2026.log';
function logMsg($msg) {
    global $logFile;
    file_put_contents($logFile, "[" . date("Y-m-d H:i:s") . "] $msg\n", FILE_APPEND);
}

function clean($v) {
    return htmlspecialchars(trim($v));
}

logMsg("===== NEW OMRA RAMADAN 2026 REQUEST =====");

// Handle POST
if ($_SERVER["REQUEST_METHOD"] === "POST") {

    $json = file_get_contents("php://input");
    $data = json_decode($json, true);

    if (!$data || json_last_error() !== JSON_ERROR_NONE) {
        $data = $_POST;
    }

    // Get fields
    $nom         = clean($data["nom"] ?? "");
    $email       = clean($data["email"] ?? "");
    $telephone   = clean($data["telephone"] ?? "");
    $dates       = clean($data["dates"] ?? "");
    $message     = clean($data["message"] ?? "");

    // Travelers
    $adultes = intval($data["adultes"] ?? 0);
    $enfants = intval($data["enfants"] ?? 0);
    $bebes   = intval($data["bebes"] ?? 0);

    // Rooms
    $quad = intval($data["chambres_quadruple"] ?? 0);
    $tri  = intval($data["chambres_triple"] ?? 0);
    $dou  = intval($data["chambres_double"] ?? 0);
    $sim  = intval($data["chambres_simple"] ?? 0);

    logMsg("Data - Nom: '$nom', Email: '$email', Tel: '$telephone'");
    logMsg("Voyageurs - Adultes: $adultes, Enfants: $enfants, Bébés: $bebes");
    logMsg("Chambres - Simple: $sim, Double: $dou, Triple: $tri, Quadruple: $quad");
    logMsg("Message: '$message'");

    // Required fields
    if (!$nom || !$email || !$telephone || !$dates) {
        echo json_encode([
            "status" => "error",
            "message" => "Veuillez remplir tous les champs obligatoires"
        ]);
        logMsg("❌ Missing required fields");
        exit;
    }

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo json_encode([
            "status" => "error",
            "message" => "Adresse email invalide"
        ]);
        logMsg("❌ Invalid email");
        exit;
    }

    logMsg("Validation OK");

    // Subject
    $subject = "LP OMRA RAMADAN 2026";

    // HTML Email
    $emailBody = "
        <html>
        <head>
            <style>
                body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
                .recap { background-color: #f9f9f9; padding: 20px; border-radius: 5px; border: 1px solid #ddd; }
                h2 { color: #333366; border-bottom: 1px solid #ddd; padding-bottom: 10px; }
                .label { font-weight: bold; color: #555; }
                .message-box { background-color: #fff3cd; padding: 15px; border-left: 4px solid #ffc107; margin-top: 15px; }
            </style>
        </head>
        <body>
            <h2>Récapitulatif de la demande - Omra Ramadan 2026</h2>
            <div class='recap'>
                <p><span class='label'>Nom complet:</span> $nom</p>
                <p><span class='label'>Email:</span> $email</p>
                <p><span class='label'>Téléphone:</span> $telephone</p>
                <p><span class='label'>Dates:</span> $dates</p>
                <p><span class='label'>Voyageurs:</span>
                    $adultes adulte(s),
                    $enfants enfant(s),
                    $bebes bébé(s)
                </p>
                <p><span class='label'>Hébergement:</span>
                    $quad quadruple(s),
                    $tri triple(s),
                    $dou double(s),
                    $sim simple(s)
                </p>
                " . (!empty($message) ? "<div class='message-box'><p><span class='label'>Message du client:</span></p><p>$message</p></div>" : "") . "
            </div>
        </body>
        </html>
    ";

    // Recipients
    $recipients = [
        "contact@albayt.fr",
        "brandwoodadvertising@gmail.com"
    ];

    logMsg("Recipients: " . implode(', ', $recipients));
    logMsg("Method: OVH SMTP agence-hajj.fr");

    $allSent = true;
    $sentCount = 0;

    foreach ($recipients as $to) {
        try {
            logMsg("--- Sending to: $to ---");

            $mail = new PHPMailer(true);

            $mail->isSMTP();
            $mail->Host       = "ssl0.ovh.net";
            $mail->SMTPAuth   = true;
            $mail->Username   = "albayt@agence-hajj.fr";
            $mail->Password   = "Hajj2026Contact!";
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
            $mail->Port       = 465;
            $mail->CharSet    = "UTF-8";
            $mail->Timeout    = 30;

            $mail->setFrom("albayt@agence-hajj.fr", "Système de réservation");
            $mail->addAddress($to);
            $mail->addReplyTo($email, $nom);

            $mail->isHTML(true);
            $mail->Subject = $subject;
            $mail->Body    = $emailBody;
            $mail->AltBody = strip_tags($emailBody);

            $startTime = microtime(true);
            $mail->send();
            $duration = round((microtime(true) - $startTime) * 1000, 2);

            $sentCount++;
            logMsg("✅ SMTP SUCCESS: $to ({$duration}ms)");
        } catch (Exception $e) {
            $allSent = false;
            logMsg("❌ Failed sending to $to : " . $mail->ErrorInfo);
        }
    }

    logMsg("=== SUMMARY ===");
    logMsg("Sent: $sentCount/" . count($recipients));

    if ($allSent) {
        logMsg("✅✅✅ ALL EMAILS SENT ✅✅✅");
        echo json_encode(["status" => "success", "message" => "Votre demande a été envoyée avec succès!"]);
    } else {
        logMsg("❌ SOME FAILED");
        echo json_encode(["status" => "error", "message" => "Erreur lors de l'envoi de l'email"]);
    }

    logMsg("========================================\n");
    exit;
}

// Invalid method
http_response_code(405);
echo json_encode(["status" => "error", "message" => "Méthode non autorisée"]);
?>



