<?php
session_start();
if (!isset($_SESSION['admin_usuario'])) {
    header('Location: ../admin_login.php');
    exit();
}
require_once '../config/database.php';

// Función para verificar cumpleaños del día
function verificarCumpleanosHoy($pdo) {
    $hoy = date('Y-m-d');
    $mes_dia = date('-m-d');
    
    // Buscar miembros que cumplen años hoy
    $stmt = $pdo->prepare("
        SELECT id, nombre, apellido, telefono, fecha_nacimiento 
        FROM miembros 
        WHERE DATE_FORMAT(fecha_nacimiento, '%m-%d') = ?
        ORDER BY fecha_nacimiento
    ");
    $stmt->execute([date('m-d')]);
    $cumpleaneros = $stmt->fetchAll();
    
    // Verificar si ya se envió alerta hoy para estos miembros
    $alertas_pendientes = [];
    foreach ($cumpleaneros as $miembro) {
        $stmt = $pdo->prepare("
            SELECT id FROM alertas_cumpleanos 
            WHERE miembro_id = ? AND fecha_alerta = ? 
            AND estado IN ('pendiente', 'enviada')
        ");
        $stmt->execute([$miembro['id'], $hoy]);
        if (!$stmt->fetch()) {
            // Registrar nueva alerta pendiente
            $stmt = $pdo->prepare("
                INSERT INTO alertas_cumpleanos (miembro_id, fecha_alerta, estado) 
                VALUES (?, ?, 'pendiente')
            ");
            $stmt->execute([$miembro['id'], $hoy]);
            $alertas_pendientes[] = $miembro;
        } else {
            // Alerta ya registrada
            $alertas_pendientes[] = $miembro;
        }
    }
    
    return $alertas_pendientes;
}

// Función para obtener cumpleaños próximos (próximos 7 días)
function obtenerProximosCumpleanos($pdo, $dias = 7) {
    $stmt = $pdo->prepare("
        SELECT 
            id, 
            nombre, 
            apellido, 
            telefono, 
            fecha_nacimiento,
            DATE_FORMAT(fecha_nacimiento, '%d de %M') as dia_mes,
            CASE 
                WHEN DATE_FORMAT(fecha_nacimiento, '%m-%d') >= DATE_FORMAT(CURDATE(), '%m-%d')
                THEN DATE(CONCAT(YEAR(CURDATE()), '-', DATE_FORMAT(fecha_nacimiento, '%m-%d')))
                ELSE DATE(CONCAT(YEAR(CURDATE()) + 1, '-', DATE_FORMAT(fecha_nacimiento, '%m-%d')))
            END as proximo_cumple
        FROM miembros 
        HAVING proximo_cumple BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL ? DAY)
        ORDER BY proximo_cumple ASC
    ");
    $stmt->execute([$dias]);
    return $stmt->fetchAll();
}

// Marcar alerta como enviada
if (isset($_GET['marcar_enviada']) && isset($_GET['miembro_id'])) {
    $hoy = date('Y-m-d');
    $stmt = $pdo->prepare("
        UPDATE alertas_cumpleanos 
        SET estado = 'enviada', fecha_envio = NOW() 
        WHERE miembro_id = ? AND fecha_alerta = ? AND estado = 'pendiente'
    ");
    $stmt->execute([$_GET['miembro_id'], $hoy]);
    header('Location: verificar_cumpleanos.php');
    exit();
}

// Obtener cumpleaños del día
$cumpleaneros_hoy = verificarCumpleanosHoy($pdo);
$proximos_cumpleanos = obtenerProximosCumpleanos($pdo, 7);
$total_cumpleaneros = count($cumpleaneros_hoy);
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="refresh" content="300"> <!-- Refrescar cada 5 minutos -->
    <title>Alertas de Cumpleaños - RIPA Admin</title>
    <link rel="stylesheet" href="../css/style.css">
    <style>
        .alerta-cumple {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
            animation: pulse 2s infinite;
            box-shadow: 0 5px 15px rgba(0,0,0,0.3);
        }
        
        @keyframes pulse {
            0% {
                box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.7);
            }
            70% {
                box-shadow: 0 0 0 10px rgba(102, 126, 234, 0);
            }
            100% {
                box-shadow: 0 0 0 0 rgba(102, 126, 234, 0);
            }
        }
        
        .alerta-cumple h2 {
            margin: 0 0 10px 0;
            font-size: 24px;
        }
        
        .lista-cumpleaneros {
            background: white;
            color: #333;
            padding: 15px;
            border-radius: 8px;
            margin-top: 15px;
        }
        
        .cumpleanero-item {
            padding: 10px;
            border-bottom: 1px solid #eee;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .cumpleanero-item:last-child {
            border-bottom: none;
        }
        
        .btn-felicitacion {
            background: #25D366;
            color: white;
            padding: 5px 15px;
            border-radius: 5px;
            text-decoration: none;
            font-size: 12px;
            margin-left: 10px;
        }
        
        .btn-felicitacion:hover {
            background: #128C7E;
        }
        
        .btn-marcar-enviada {
            background: #4CAF50;
            color: white;
            padding: 5px 10px;
            border-radius: 5px;
            text-decoration: none;
            font-size: 11px;
            margin-left: 10px;
        }
        
        .proximos-cumple {
            background: #fff3e0;
            padding: 15px;
            border-radius: 8px;
            margin-top: 20px;
            border-left: 4px solid #ff9800;
        }
        
        .badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: bold;
            margin-left: 10px;
        }
        
        .badge-hoy {
            background: #ff4444;
            color: white;
        }
        
        .badge-proximo {
            background: #ff9800;
            color: white;
        }
        
        .campana {
            font-size: 20px;
            animation: timbre 1s ease-in-out infinite;
            display: inline-block;
        }
        
        @keyframes timbre {
            0% { transform: rotate(0deg); }
            10% { transform: rotate(15deg); }
            20% { transform: rotate(-15deg); }
            30% { transform: rotate(10deg); }
            40% { transform: rotate(-10deg); }
            50% { transform: rotate(5deg); }
            60% { transform: rotate(-5deg); }
            70% { transform: rotate(2deg); }
            80% { transform: rotate(-2deg); }
            100% { transform: rotate(0deg); }
        }
        
        .no-cumple {
            background: #e8f5e9;
            padding: 15px;
            border-radius: 8px;
            color: #2e7d32;
        }
        
        .edad-calculo {
            font-size: 12px;
            color: #666;
            margin-top: 5px;
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>🎂 Alertas de Cumpleaños RIPA</h1>
            <p>Sistema de notificación de cumpleaños de miembros</p>
        </header>
        <nav>
            <a href="index.php">Inicio</a>
            <a href="miembros.php">Gestionar Miembros</a>
            <a href="enviar_mensaje.php">Enviar Mensaje</a>
            <a href="verificar_cumpleanos.php">🎂 Cumpleaños</a>
            <a href="../logout.php">Cerrar Sesión</a>
        </nav>
        
        <?php if ($total_cumpleaneros > 0): ?>
            <!-- Alerta de cumpleaños -->
            <div class="alerta-cumple">
                <h2>
                    <span class="campana">🔔</span> 
                    ¡ALERTA DE CUMPLEAÑOS!
                    <span class="campana">🎉</span>
                </h2>
                <p><strong>Hoy <?php echo date('d/m/Y'); ?></strong> - <?php echo $total_cumpleaneros; ?> miembro(s) está(n) celebrando su cumpleaños</p>
                
                <div class="lista-cumpleaneros">
                    <?php foreach ($cumpleaneros_hoy as $cumpleanero): 
                        $edad = date('Y') - date('Y', strtotime($cumpleanero['fecha_nacimiento']));
                        $telefono = preg_replace('/[^0-9]/', '', $cumpleanero['telefono']);
                        if (substr($telefono, 0, 1) == '0') $telefono = '595' . substr($telefono, 1);
                        $mensajeFeliz = "🎂 ¡Feliz Cumpleaños {$cumpleanero['nombre']} {$cumpleanero['apellido']}! 🎉\n\nLa Comisión Directiva de RIPA te desea un día lleno de bendiciones y alegrías. Que cumplas muchos años más junto a nosotros. ¡Felicidades! 🎊🎁";
                        $whatsappLink = "https://wa.me/{$telefono}?text=" . urlencode($mensajeFeliz);
                    ?>
                    <div class="cumpleanero-item">
                        <div>
                            <strong>🎂 <?php echo htmlspecialchars($cumpleanero['nombre'] . ' ' . $cumpleanero['apellido']); ?></strong>
                            <span class="badge badge-hoy">¡Hoy!</span>
                            <div class="edad-calculo">
                                📅 Cumple: <?php echo date('d/m/Y', strtotime($cumpleanero['fecha_nacimiento'])); ?> 
                                (<?php echo $edad; ?> años)
                            </div>
                        </div>
                        <div>
                            <a href="<?php echo $whatsappLink; ?>" target="_blank" class="btn-felicitacion">
                                💬 Enviar Felicitación
                            </a>
                            <a href="?marcar_enviada=1&miembro_id=<?php echo $cumpleanero['id']; ?>" 
                               class="btn-marcar-enviada"
                               onclick="return confirm('¿Marcar como ya felicitado?')">
                                ✓ Marcar Enviada
                            </a>
                        </div>
                    </div>
                    <?php endforeach; ?>
                </div>
                
                <div style="margin-top: 15px; font-size: 13px;">
                    <small>💡 La alerta se actualiza automáticamente cada 5 minutos</small>
                </div>
            </div>
        <?php else: ?>
            <div class="no-cumple">
                <h3>📅 No hay cumpleaños hoy</h3>
                <p>No hay miembros que cumplan años en la fecha de hoy (<?php echo date('d/m/Y'); ?>).</p>
            </div>
        <?php endif; ?>
        
        <!-- Próximos cumpleaños -->
        <div class="proximos-cumple">
            <h3>📅 Próximos Cumpleaños (próximos 7 días)</h3>
            <?php if (count($proximos_cumpleanos) > 0): ?>
                <table style="width: 100%; margin-top: 10px;">
                    <thead>
                        <tr style="background: #ff9800; color: white;">
                            <th>Nombre</th>
                            <th>Fecha de Nacimiento</th>
                            <th>Días Restantes</th>
                            <th>Acción</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($proximos_cumpleanos as $cumple): 
                            $dias_restantes = ceil((strtotime($cumple['proximo_cumple']) - time()) / 86400);
                            $telefono = preg_replace('/[^0-9]/', '', $cumple['telefono']);
                            if (substr($telefono, 0, 1) == '0') $telefono = '595' . substr($telefono, 1);
                        ?>
                        <tr>
                            <td><?php echo htmlspecialchars($cumple['nombre'] . ' ' . $cumple['apellido']); ?></td>
                            <td><?php echo date('d/m/Y', strtotime($cumple['fecha_nacimiento'])); ?></td>
                            <td>
                                <?php if ($dias_restantes == 0): ?>
                                    <span class="badge badge-hoy">¡HOY!</span>
                                <?php else: ?>
                                    <span class="badge badge-proximo">En <?php echo $dias_restantes; ?> días</span>
                                <?php endif; ?>
                            </td>
                            <td>
                                <a href="https://wa.me/<?php echo $telefono; ?>?text=📅%20Preparando%20tu%20felicitación%20de%20cumpleaños%20RIPA" 
                                   target="_blank" class="btn-felicitacion" style="background: #ff9800;">
                                    📱 Contactar
                                </a>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            <?php else: ?>
                <p>No hay cumpleaños programados en los próximos 7 días.</p>
            <?php endif; ?>
        </div>
        
        <!-- Mensaje sugerido para felicitaciones -->
        <div style="background: #f5f5f5; padding: 15px; border-radius: 8px; margin-top: 20px;">
            <h4>💡 Mensaje sugerido para felicitaciones:</h4>
            <div style="background: white; padding: 10px; border-radius: 5px; font-family: monospace;">
                🎂 ¡Feliz Cumpleaños [NOMBRE]! 🎉<br><br>
                La Comisión Directiva de RIPA te desea un día lleno de bendiciones y alegrías.<br>
                Que cumplas muchos años más junto a nosotros. ¡Felicidades! 🎊🎁<br><br>
                Atentamente,<br>
                RIPA - Respetando la Constitución Nacional del Paraguay
            </div>
        </div>
    </div>
    
    <script>
        // Reproducir sonido de alerta (opcional)
        function reproducirAlerta() {
            <?php if ($total_cumpleaneros > 0): ?>
            if (Notification.permission === "granted") {
                new Notification("🎂 Alerta de Cumpleaños RIPA", {
                    body: "Hay <?php echo $total_cumpleaneros; ?> miembro(s) que cumplen años hoy",
                    icon: "https://cdn-icons-png.flaticon.com/512/833/833472.png"
                });
            }
            <?php endif; ?>
        }
        
        // Solicitar permiso para notificaciones
        if (Notification.permission !== "granted" && Notification.permission !== "denied") {
            Notification.requestPermission();
        }
        
        // Reproducir alerta al cargar
        reproducirAlerta();
        
        // Actualizar página automáticamente cada 5 minutos
        setTimeout(function() {
            location.reload();
        }, 300000);
    </script>
</body>
</html>