<?php
/**
 * Template Institucional - Invitación UE Juan de Dios
 * Sin sobre, pantalla completa. Fondos desde galería.
 * Desktop: 1920x1080 | Móvil: 1080x1920
 */

if (!isset($evento) || !isset($invitado)) {
    die('Error: Datos del evento o invitado no disponibles');
}

$eventoId = $evento['id'] ?? 0;
$tipoEvento = $evento['tipo_evento'] ?? 'evento_social';

// Nombre del evento (Sesión Solemne, etc.)
$nombreEvento = $evento['nombre_evento_social'] ?? $evento['nombre_evento'] ?? 'Evento';
$nombreEventoDisplay = $evento['nombre_evento_social'] ?? $evento['descripcion'] ?? 'Evento';

// Personalizaciones
$personalizaciones = obtenerPersonalizacionesTemplate($eventoId);
$tipografias = obtenerTipografias($eventoId);

// Helper para obtener valor personalizado (decodifica entidades HTML guardadas)
$p = function($seccion, $elemento, $default = '') use ($personalizaciones) {
    $valor = $personalizaciones[$seccion][$elemento]['valor'] ?? $default;
    return $valor !== '' ? decodeEntidadesTexto($valor) : $default;
};

// Datos de la BD
$lugarEvento = $evento['lugar_evento'] ?? '';
$direccionEvento = $evento['direccion_evento'] ?? '';
$fechaEvento = $evento['fecha_evento'] ?? '';
$horaEvento = $evento['hora_evento'] ?? '';
$nombreInvitado = trim(($invitado['nombre_cortesia'] ?? '') . ' ' . ($invitado['nombre_invitado'] ?? ''));
$estadoInvitado = $invitado['estado'] ?? 'Pendiente';

// Google Maps URL
$googleMapsUrl = "https://www.google.com/maps";
if (!empty($direccionEvento) && strpos($direccionEvento, ',') !== false) {
    $coords = explode(',', $direccionEvento);
    if (count($coords) >= 2) {
        $lat = trim($coords[0]);
        $lng = trim($coords[1]);
        $googleMapsUrl = "https://www.google.com/maps/search/?api=1&query={$lat},{$lng}";
    }
}

// Google Calendar URL
$fechaCalInicio = $fechaCalFin = '';
if (!empty($fechaEvento) && !empty($horaEvento)) {
    $dt = DateTime::createFromFormat('Y-m-d H:i:s', $fechaEvento . ' ' . $horaEvento);
    if (!$dt) $dt = DateTime::createFromFormat('Y-m-d H:i', $fechaEvento . ' ' . substr($horaEvento, 0, 5));
    if ($dt) {
        $fechaCalInicio = $dt->format('Ymd\THis');
        $dt->modify('+2 hours');
        $fechaCalFin = $dt->format('Ymd\THis');
    }
}
$tituloCal = urlencode($nombreEventoDisplay . ' - ' . ($evento['lugar_evento'] ?? ''));
$detallesCal = urlencode('Invitación a ' . $nombreEventoDisplay);
$lugarCal = urlencode($lugarEvento);
$googleCalendarUrl = "https://www.google.com/calendar/render?action=TEMPLATE&text={$tituloCal}&details={$detallesCal}&location={$lugarCal}&dates={$fechaCalInicio}/{$fechaCalFin}";

// Formatear fecha para mostrar
$fechaFormateada = '';
if (!empty($fechaEvento)) {
    $meses = [1=>'Enero',2=>'Febrero',3=>'Marzo',4=>'Abril',5=>'Mayo',6=>'Junio',7=>'Julio',8=>'Agosto',9=>'Septiembre',10=>'Octubre',11=>'Noviembre',12=>'Diciembre'];
    $f = DateTime::createFromFormat('Y-m-d', $fechaEvento);
    if ($f) $fechaFormateada = $f->format('d') . '/' . $meses[(int)$f->format('m')] . '/' . $f->format('Y');
}

// Asset path
if (!function_exists('getAssetPath')) {
    function getAssetPath($path) {
        if (empty($path)) return '';
        $path = trim($path);
        if (defined('BASE_URL')) return rtrim(BASE_URL, '/') . '/' . ltrim($path, '/');
        return '../..' . (strpos($path, '/') === 0 ? $path : '/' . $path);
    }
}

$isPreview = isset($_GET['preview']) && $_GET['preview'] == '1';
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title><?php echo htmlspecialchars($nombreEventoDisplay); ?> - Invitación</title>
    <link rel="stylesheet" href="<?php echo htmlspecialchars($templatePath ?? ''); ?>/template.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600;700&family=Dancing+Script:wght@400;500;600;700&display=swap" rel="stylesheet">
    <style>
        <?php
        $fontKeys = ['letra_cursiva_1','letra_cursiva_2','letra_sans_1','letra_sans_2','letra_sans_3'];
        foreach ($fontKeys as $key):
            $archivo = $tipografias[$key.'_archivo'] ?? null;
            $nombre = $tipografias[$key.'_nombre'] ?? '';
            if (!empty($archivo) && !empty($nombre)):
                $fontUrl = getAssetPath($archivo);
                $ext = strtolower(pathinfo($archivo, PATHINFO_EXTENSION));
                $format = ($ext==='ttf')?'truetype':(($ext==='otf')?'opentype':(($ext==='woff2')?'woff2':'woff'));
        ?>
        @font-face{font-family:'<?php echo addslashes($nombre); ?>';src:url('<?php echo htmlspecialchars($fontUrl); ?>') format('<?php echo $format; ?>');font-weight:100 900;font-style:normal;font-display:swap;}
        <?php endif; endforeach; ?>
        :root {
            <?php
            if(!empty($tipografias['letra_sans_1_nombre'])) echo "--letra-sans-1: '".addslashes($tipografias['letra_sans_1_nombre'])."', sans-serif;\n            ";
            if(!empty($tipografias['letra_sans_2_nombre'])) echo "--letra-sans-2: '".addslashes($tipografias['letra_sans_2_nombre'])."', sans-serif;\n            ";
            if(!empty($tipografias['letra_cursiva_1_nombre'])) echo "--letra-cursiva: '".addslashes($tipografias['letra_cursiva_1_nombre'])."', cursive;\n            ";
            ?>
        }
    </style>
</head>
<body class="invitacion-institucional <?php echo $isPreview ? 'preview' : ''; ?>">
    <?php if ($isPreview): ?>
    <div class="preview-banner">Vista Previa - <a href="<?php echo BASE_URL . ADMIN_PATH; ?>/index.php">Volver al Dashboard</a></div>
    <?php endif; ?>

    <div class="invitacion-container invitacion-desktop">
        <div class="invitacion-fondo invitacion-fondo-escritorio" style="background-image: url('<?php 
            $fondoEsc = $p('fondos','fondo_escritorio', '') ?: ($evento['foto_principal'] ?? '');
            echo $fondoEsc ? htmlspecialchars(getAssetPath($fondoEsc)) : '';
        ?>');"></div>
        <div class="invitacion-contenido">
            <!-- Logo -->
            <?php $logoImg = $p('header','logo'); if (!empty($logoImg)): ?>
            <div class="invitacion-logo">
                <img src="<?php echo htmlspecialchars(getAssetPath($logoImg)); ?>" alt="Logo">
            </div>
            <?php endif; ?>

            <!-- Institución -->
            <div class="invitacion-institucion">
                <div class="invitacion-unidad"><?php echo htmlspecialchars($p('header','unidad_educativa', 'Unidad Educativa')); ?></div>
                <div class="invitacion-nombre"><?php echo htmlspecialchars($p('header','juana_de_dios', 'JUANA DE DIOS')); ?></div>
                <div class="invitacion-slogan"><?php echo htmlspecialchars($p('header','slogan', 'Desde 1989, Educando con Amor®')); ?></div>
            </div>

            <!-- Saludo e invitado -->
            <div class="invitacion-saludo">
                <p><?php echo htmlspecialchars($p('invitacion','texto_saludo', 'Estimado(a)')); ?></p>
                <p class="invitacion-nombre-invitado"><?php echo htmlspecialchars($nombreInvitado); ?></p>
            </div>

            <!-- Invitación -->
            <div class="invitacion-texto">
                <p><?php echo htmlspecialchars($p('invitacion','texto_invitacion', 'Tenemos el grato honor de extenderle la cordial invitación a la')); ?></p>
                <h2 class="invitacion-evento-nombre"><?php echo htmlspecialchars($nombreEventoDisplay); ?></h2>
                <p><?php echo htmlspecialchars($p('invitacion','texto_institucional', 'por los 37 años de vida institucional de la')); ?></p>
                <p class="invitacion-institucion-sec"><?php echo htmlspecialchars($p('invitacion','nombre_institucion_secundario', 'Unidad Educativa "Juana de Dios"')); ?></p>
            </div>

            <!-- Ubicación y Hora - icono ocupa ambas filas -->
            <div class="invitacion-ubicacion-hora">
                <div class="invitacion-col">
                    <div class="invitacion-icono-wrapper">
                        <svg class="invitacion-icono-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
                    </div>
                    <div class="invitacion-col-inner">
                        <div class="invitacion-lugar"><?php echo htmlspecialchars($lugarEvento); ?></div>
                        <a href="<?php echo htmlspecialchars($googleMapsUrl); ?>" target="_blank" rel="noopener" class="invitacion-btn">Ver mapa</a>
                    </div>
                </div>
                <div class="invitacion-divider"></div>
                <div class="invitacion-col">
                    <div class="invitacion-icono-wrapper">
                        <svg class="invitacion-icono-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
                    </div>
                    <div class="invitacion-col-inner">
                        <div class="invitacion-hora"><?php echo htmlspecialchars(substr($horaEvento, 0, 5)); ?></div>
                        <div class="invitacion-fecha"><?php echo htmlspecialchars($fechaFormateada); ?></div>
                        <a href="<?php echo htmlspecialchars($googleCalendarUrl); ?>" target="_blank" rel="noopener" class="invitacion-btn">Agendar en calendario</a>
                    </div>
                </div>
            </div>

            <!-- Dress Code -->
            <div class="invitacion-dresscode">
                <?php echo htmlspecialchars($p('dresscode','texto', 'DressCode: Formal')); ?>
            </div>

            <!-- Confirmación -->
            <?php if (!$isPreview): ?>
            <div class="invitacion-confirmacion">
                <p class="invitacion-confirmacion-titulo">Confirma tu asistencia</p>
                <div class="invitacion-confirmacion-botones">
                    <button type="button" class="btn-confirmar-si" onclick="abrirModalAceptar()" <?php echo $estadoInvitado === 'Aceptado' ? 'disabled' : ''; ?>>Sí asistiré</button>
                    <button type="button" class="btn-confirmar-no" onclick="abrirModalRechazar()" <?php echo $estadoInvitado === 'Rechazado' ? 'disabled' : ''; ?>>No asistiré</button>
                </div>
                <?php if ($estadoInvitado !== 'Pendiente'): ?>
                <p class="invitacion-estado">Estado: <?php echo $estadoInvitado === 'Aceptado' ? '✓ Confirmado' : 'No asistirá'; ?></p>
                <?php endif; ?>
            </div>
            <?php endif; ?>

            <!-- Firmas -->
            <div class="invitacion-firmas">
                <p class="invitacion-atentamente">Atentamente,</p>
                <div class="invitacion-firmas-grid">
                    <div class="invitacion-firma">
                        <strong><?php echo htmlspecialchars($p('firmas','firma1_nombre', 'Mgs. Cinthia Chica Gómez')); ?></strong>
                        <span><?php echo htmlspecialchars($p('firmas','firma1_cargo', 'GERENTE SEDUIN S.A.')); ?></span>
                    </div>
                    <div class="invitacion-firma">
                        <strong><?php echo htmlspecialchars($p('firmas','firma2_nombre', 'Mgs. Martha Serrano Aguilar')); ?></strong>
                        <span><?php echo htmlspecialchars($p('firmas','firma2_cargo', 'RECTORA UNEJUD')); ?></span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- Versión móvil (mismo contenido, fondo diferente) -->
    <div class="invitacion-container invitacion-movil">
        <div class="invitacion-fondo invitacion-fondo-movil" style="background-image: url('<?php 
            $fondoMov = $p('fondos','fondo_movil', '') ?: $p('fondos','fondo_escritorio', '') ?: ($evento['foto_principal'] ?? '');
            echo $fondoMov ? htmlspecialchars(getAssetPath($fondoMov)) : '';
        ?>');"></div>
        <div class="invitacion-contenido">
            <?php if (!empty($logoImg)): ?>
            <div class="invitacion-logo"><img src="<?php echo htmlspecialchars(getAssetPath($logoImg)); ?>" alt="Logo"></div>
            <?php endif; ?>
            <div class="invitacion-institucion">
                <div class="invitacion-unidad"><?php echo htmlspecialchars($p('header','unidad_educativa', 'Unidad Educativa')); ?></div>
                <div class="invitacion-nombre"><?php echo htmlspecialchars($p('header','juana_de_dios', 'JUANA DE DIOS')); ?></div>
                <div class="invitacion-slogan"><?php echo htmlspecialchars($p('header','slogan', 'Desde 1989, Educando con Amor®')); ?></div>
            </div>
            <div class="invitacion-saludo">
                <p><?php echo htmlspecialchars($p('invitacion','texto_saludo', 'Estimado(a)')); ?></p>
                <p class="invitacion-nombre-invitado"><?php echo htmlspecialchars($nombreInvitado); ?></p>
            </div>
            <div class="invitacion-texto">
                <p><?php echo htmlspecialchars($p('invitacion','texto_invitacion', 'Tenemos el grato honor de extenderle la cordial invitación a la')); ?></p>
                <h2 class="invitacion-evento-nombre"><?php echo htmlspecialchars($nombreEventoDisplay); ?></h2>
                <p><?php echo htmlspecialchars($p('invitacion','texto_institucional', 'por los 37 años de vida institucional de la')); ?></p>
                <p class="invitacion-institucion-sec"><?php echo htmlspecialchars($p('invitacion','nombre_institucion_secundario', 'Unidad Educativa "Juana de Dios"')); ?></p>
            </div>
            <div class="invitacion-ubicacion-hora">
                <div class="invitacion-col">
                    <div class="invitacion-icono-wrapper">
                        <svg class="invitacion-icono-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
                    </div>
                    <div class="invitacion-col-inner">
                        <div class="invitacion-lugar"><?php echo htmlspecialchars($lugarEvento); ?></div>
                        <a href="<?php echo htmlspecialchars($googleMapsUrl); ?>" target="_blank" rel="noopener" class="invitacion-btn">Ver mapa</a>
                    </div>
                </div>
                <div class="invitacion-divider"></div>
                <div class="invitacion-col">
                    <div class="invitacion-icono-wrapper">
                        <svg class="invitacion-icono-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
                    </div>
                    <div class="invitacion-col-inner">
                        <div class="invitacion-hora"><?php echo htmlspecialchars(substr($horaEvento, 0, 5)); ?></div>
                        <div class="invitacion-fecha"><?php echo htmlspecialchars($fechaFormateada); ?></div>
                        <a href="<?php echo htmlspecialchars($googleCalendarUrl); ?>" target="_blank" rel="noopener" class="invitacion-btn">Agendar en calendario</a>
                    </div>
                </div>
            </div>
            <div class="invitacion-dresscode"><?php echo htmlspecialchars($p('dresscode','texto', 'DressCode: Formal')); ?></div>
            <?php if (!$isPreview): ?>
            <div class="invitacion-confirmacion">
                <p class="invitacion-confirmacion-titulo">Confirma tu asistencia</p>
                <div class="invitacion-confirmacion-botones">
                    <button type="button" class="btn-confirmar-si" onclick="abrirModalAceptar()" <?php echo $estadoInvitado === 'Aceptado' ? 'disabled' : ''; ?>>Sí asistiré</button>
                    <button type="button" class="btn-confirmar-no" onclick="abrirModalRechazar()" <?php echo $estadoInvitado === 'Rechazado' ? 'disabled' : ''; ?>>No asistiré</button>
                </div>
                <?php if ($estadoInvitado !== 'Pendiente'): ?>
                <p class="invitacion-estado">Estado: <?php echo $estadoInvitado === 'Aceptado' ? '✓ Confirmado' : 'No asistirá'; ?></p>
                <?php endif; ?>
            </div>
            <?php endif; ?>
            <div class="invitacion-firmas">
                <p class="invitacion-atentamente">Atentamente,</p>
                <div class="invitacion-firmas-grid">
                    <div class="invitacion-firma">
                        <strong><?php echo htmlspecialchars($p('firmas','firma1_nombre', 'Mgs. Cinthia Chica Gómez')); ?></strong>
                        <span><?php echo htmlspecialchars($p('firmas','firma1_cargo', 'GERENTE SEDUIN S.A.')); ?></span>
                    </div>
                    <div class="invitacion-firma">
                        <strong><?php echo htmlspecialchars($p('firmas','firma2_nombre', 'Mgs. Martha Serrano Aguilar')); ?></strong>
                        <span><?php echo htmlspecialchars($p('firmas','firma2_cargo', 'RECTORA UNEJUD')); ?></span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <?php require __DIR__ . '/../../../../public/invitacion/template-modals.php'; ?>
</body>
</html>
