<?php
/**
 * public/acceso/api/send_qr_email.php
 * Generador y envío de correo electrónico con Pase de Acceso QR para Cyfort Access Pro.
 */
declare(strict_types=1);

ob_start();
header('Content-Type: application/json; charset=utf-8');

require_once __DIR__ . '/../session_boot.php';
require_once __DIR__ . '/../config/db.php';

function json_response(array $data, int $code = 200): void {
    http_response_code($code);
    if (ob_get_length()) ob_clean();
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    exit;
}

if (empty($_SESSION['acceso_user'])) {
    json_response(['ok' => false, 'error' => 'No autorizado'], 403);
}

$raw = file_get_contents('php://input');
$input = json_decode($raw, true) ?: $_POST;

$passId = (int)($input['pass_id'] ?? $_GET['pass_id'] ?? 0);
if ($passId <= 0) json_response(['ok' => false, 'error' => 'ID de pase inválido'], 400);

try {
    $pdo = acceso_db();
    $stmt = $pdo->prepare("SELECT * FROM acceso_pases_qr WHERE id = ?");
    $stmt->execute([$passId]);
    $pass = $stmt->fetch();

    if (!$pass) json_response(['ok' => false, 'error' => 'Pase QR no encontrado'], 404);

    $to = trim((string)$pass['email_invitado']);
    if ($to === '' || !filter_var($to, FILTER_VALIDATE_EMAIL)) {
        json_response(['ok' => false, 'error' => 'El invitado no tiene un correo electrónico válido registrado'], 400);
    }

    $subject = "🎟️ Tu Pase de Acceso QR — " . htmlspecialchars($pass['destino']);
    $qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=" . urlencode($pass['codigo_pass']);

    $body = "
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset='utf-8'>
      <style>
        body { font-family: 'Manrope', Arial, sans-serif; background: #090d16; color: #ffffff; padding: 20px; }
        .card { background: #0f172a; border: 1.5px solid #6366f1; border-radius: 20px; padding: 30px; max-width: 500px; margin: 0 auto; text-align: center; }
        .logo { font-size: 28px; font-weight: 900; color: #ffffff; margin-bottom: 6px; }
        .qr-box { background: #ffffff; padding: 16px; border-radius: 16px; display: inline-block; margin: 20px 0; }
        .meta { background: #1e293b; border-radius: 12px; padding: 16px; text-align: left; margin-top: 20px; font-size: 0.9rem; color: #cbd5e1; }
        .meta strong { color: #38bdf8; }
        .footer { font-size: 0.78rem; color: #64748b; margin-top: 24px; }
      </style>
    </head>
    <body>
      <div class='card'>
        <div class='logo'>🪪 Cyfort Access Pro</div>
        <p style='color:#94a3b8; font-size:0.9rem;'>Pase de Entrada & Verificación Cero Contacto</p>

        <h3 style='color:#ffffff; margin-top:20px;'>¡Hola, " . htmlspecialchars($pass['nombre_invitado']) . "!</h3>
        <p style='color:#cbd5e1; font-size:0.9rem;'>Se ha generado tu pase de acceso autorizado para ingresar a <strong>" . htmlspecialchars($pass['destino']) . "</strong>.</p>

        <div class='qr-box'>
          <img src='{$qrUrl}' alt='Pase QR' width='220' height='220'>
        </div>

        <div style='font-family:monospace; font-size:1.1rem; color:#10b981; font-weight:bold; letter-spacing:1px;'>
          " . htmlspecialchars($pass['codigo_pass']) . "
        </div>

        <div class='meta'>
          <div><strong>Invitado:</strong> " . htmlspecialchars($pass['nombre_invitado']) . "</div>
          <div><strong>Documento:</strong> " . htmlspecialchars($pass['documento_invitado']) . "</div>
          " . ($pass['placa_vehiculo'] ? "<div><strong>Placa Vehículo:</strong> " . htmlspecialchars($pass['placa_vehiculo']) . "</div>" : "") . "
          <div><strong>Válido Desde:</strong> " . htmlspecialchars($pass['fecha_validez_inicio']) . "</div>
          <div><strong>Válido Hasta:</strong> " . htmlspecialchars($pass['fecha_validez_fin']) . "</div>
        </div>

        <p style='color:#94a3b8; font-size:0.8rem; margin-top:20px;'>Por favor presenta este código QR desde tu pantalla en la portería o control de acceso.</p>
        
        <div class='footer'>
          Cyfort BJ Platform &bull; Operaciones de Seguridad Inteligente &bull; <a href='mailto:cyfortbj@segur.biz' style='color:#38bdf8;'>cyfortbj@segur.biz</a>
        </div>
      </div>
    </body>
    </html>
    ";

    $headers = [
        'MIME-Version: 1.0',
        'Content-type: text/html; charset=utf-8',
        'From: Cyfort Access Pro <cyfortbj@segur.biz>',
        'Reply-To: cyfortbj@segur.biz',
        'X-Mailer: PHP/' . phpversion()
    ];

    $sent = @mail($to, $subject, $body, implode("\r\n", $headers));

    json_response([
        'ok' => true,
        'email' => $to,
        'sent' => $sent,
        'message' => $sent ? "✅ Pase QR enviado exitosamente a {$to}" : "Pase generado (simulado envío a {$to})"
    ]);
} catch (Throwable $e) {
    json_response(['ok' => false, 'error' => $e->getMessage()], 500);
}
