<?php
/**
 * Heritage Voice — mailer.php
 * POST /api/mailer   Gửi email liên hệ từ form contact.html
 *
 * Body JSON:
 *   name    string  Họ tên người gửi
 *   contact string  Email hoặc SĐT
 *   topic   string  Chủ đề
 *   message string  Nội dung
 */

// ── CẤU HÌNH SMTP ────────────────────────────────────────────
// Điền thông tin SMTP của host vào đây
// Load secrets từ file ngoài web root
if (!defined('MAIL_PASS') && file_exists('/home/tranhiep/.hv_secrets.php')) {
    require_once '/home/tranhiep/.hv_secrets.php';
}
define('MAIL_HOST',     'smtp.gmail.com');
define('MAIL_PORT',     587);
define('MAIL_USER',     'tranhiepstudio@gmail.com');
define('MAIL_FROM',     'tranhiepstudio@gmail.com');
define('MAIL_FROM_NAME','Heritage Voice');
define('MAIL_TO',       'info@tads.ctv.hanoi.vn');
define('MAIL_TO_NAME',  'Heritage Voice Team');

// ── MAIN FUNCTION ────────────────────────────────────────────
function mailer_send(): void {

// ── PARSE BODY ───────────────────────────────────────────────
$b       = json_decode(file_get_contents('php://input'), true) ?: [];
$name    = trim($b['name']    ?? '');
$contact = trim($b['contact'] ?? '');
$topic   = trim($b['topic']   ?? 'Liên hệ chung');
$message = trim($b['message'] ?? '');

if (!$name || !$contact || !$message) json_error('Vui lòng điền đầy đủ thông tin');

// ── NỘI DUNG EMAIL ───────────────────────────────────────────
$subject = "[Heritage Voice] $topic — từ $name";
$body    = "
<html><body style='font-family:Arial,sans-serif;max-width:600px;margin:0 auto;'>
<div style='background:#8B3E18;padding:20px;border-radius:8px 8px 0 0;'>
  <h2 style='color:#fff;margin:0;'>📬 Tin nhắn mới từ Heritage Voice</h2>
</div>
<div style='background:#fff;border:1px solid #e0d8d0;border-top:none;padding:24px;border-radius:0 0 8px 8px;'>
  <table style='width:100%;border-collapse:collapse;'>
    <tr><td style='padding:8px 0;color:#888;width:120px;'>Họ tên:</td><td style='padding:8px 0;font-weight:600;'>".htmlspecialchars($name)."</td></tr>
    <tr><td style='padding:8px 0;color:#888;'>Liên hệ:</td><td style='padding:8px 0;'>".htmlspecialchars($contact)."</td></tr>
    <tr><td style='padding:8px 0;color:#888;'>Chủ đề:</td><td style='padding:8px 0;'><span style='background:#F5E6C8;color:#8B3E18;padding:2px 10px;border-radius:20px;font-size:13px;'>".htmlspecialchars($topic)."</span></td></tr>
  </table>
  <hr style='border:none;border-top:1px solid #f0ece8;margin:16px 0;'/>
  <div style='background:#faf6ee;border-radius:8px;padding:16px;'>
    <div style='color:#888;font-size:12px;margin-bottom:8px;'>NỘI DUNG:</div>
    <p style='margin:0;line-height:1.7;color:#2C1A0E;'>".nl2br(htmlspecialchars($message))."</p>
  </div>
  <p style='color:#aaa;font-size:11px;margin-top:20px;text-align:center;'>
    Gửi lúc ".date('H:i d/m/Y')." · Heritage Voice © ".date('Y')."
  </p>
</div>
</body></html>";

// ── GỬI EMAIL ────────────────────────────────────────────────
// Thử dùng PHPMailer nếu có, fallback sang mail() nội bộ
$phpmailer_path = dirname(__DIR__) . '/PHPMailer/src/PHPMailer.php';

if (file_exists($phpmailer_path)) {
    // PHPMailer — SMTP chuẩn
    require $phpmailer_path;
    require dirname($phpmailer_path) . '/SMTP.php';
    require dirname($phpmailer_path) . '/Exception.php';

    $mail = new PHPMailer\PHPMailer\PHPMailer(true);
    try {
        $mail->isSMTP();
        $mail->Host       = MAIL_HOST;
        $mail->SMTPAuth   = true;
        $mail->Username   = MAIL_USER;
        $mail->Password   = MAIL_PASS;
        $mail->SMTPSecure = 'ssl';
        $mail->Port       = MAIL_PORT;
        $mail->CharSet    = 'UTF-8';

        $mail->setFrom(MAIL_FROM, MAIL_FROM_NAME);
        $mail->addAddress(MAIL_TO, MAIL_TO_NAME);
        $mail->addReplyTo($contact, $name); // reply thẳng về người gửi nếu contact là email

        $mail->isHTML(true);
        $mail->Subject = $subject;
        $mail->Body    = $body;

        $mail->send();
        json_ok('Gửi thành công! Chúng tôi sẽ phản hồi trong 24 giờ.');
    } catch (Exception $e) {
        json_error('Không gửi được email: ' . $mail->ErrorInfo);
    }

} else {
    // Fallback: mail() nội bộ của server (không cần SMTP config)
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    $headers .= "From: " . MAIL_FROM_NAME . " <" . MAIL_FROM . ">\r\n";
    $headers .= "Reply-To: $contact\r\n";
    $headers .= "X-Mailer: PHP/" . phpversion();

    if (mail(MAIL_TO, '=?UTF-8?B?' . base64_encode($subject) . '?=', $body, $headers)) {
        json_ok('Gửi thành công! Chúng tôi sẽ phản hồi trong 24 giờ.');
    } else {
        json_error('Không gửi được email. Vui lòng liên hệ trực tiếp qua Zalo hoặc email.');
    }
}
}
