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

$mensaje = '';
$mensajeError = '';

// Verificar si se recibió un ID
if (!isset($_GET['id']) || empty($_GET['id'])) {
    header('Location: miembros.php');
    exit();
}

$id = $_GET['id'];

// Obtener datos del miembro
$stmt = $pdo->prepare("SELECT * FROM miembros WHERE id = ?");
$stmt->execute([$id]);
$miembro = $stmt->fetch();

if (!$miembro) {
    header('Location: miembros.php?error=no_encontrado');
    exit();
}

// Procesar actualización
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $nombre = $_POST['nombre'];
    $apellido = $_POST['apellido'];
    $cedula = $_POST['cedula'];
    $fecha_nacimiento = $_POST['fecha_nacimiento'];
    $telefono = $_POST['telefono'];
    $pais = $_POST['pais'];
    $departamento = $_POST['departamento'];
    $ciudad = $_POST['ciudad'];
    $latitud = !empty($_POST['latitud']) ? $_POST['latitud'] : null;
    $longitud = !empty($_POST['longitud']) ? $_POST['longitud'] : null;
    
    try {
        // Verificar si la cédula ya existe (excepto el mismo miembro)
        $stmt = $pdo->prepare("SELECT id FROM miembros WHERE cedula = ? AND id != ?");
        $stmt->execute([$cedula, $id]);
        if ($stmt->fetch()) {
            $mensajeError = '<div class="alert alert-error">❌ Ya existe otro miembro con esta cédula.</div>';
        } else {
            $stmt = $pdo->prepare("UPDATE miembros SET nombre=?, apellido=?, cedula=?, fecha_nacimiento=?, telefono=?, pais=?, departamento=?, ciudad=?, latitud=?, longitud=? WHERE id=?");
            $stmt->execute([$nombre, $apellido, $cedula, $fecha_nacimiento, $telefono, $pais, $departamento, $ciudad, $latitud, $longitud, $id]);
            $mensaje = '<div class="alert alert-success">✅ Miembro actualizado correctamente</div>';
            
            // Recargar datos del miembro
            $stmt = $pdo->prepare("SELECT * FROM miembros WHERE id = ?");
            $stmt->execute([$id]);
            $miembro = $stmt->fetch();
        }
    } catch(PDOException $e) {
        $mensajeError = '<div class="alert alert-error">❌ Error: ' . $e->getMessage() . '</div>';
    }
}

// Calcular edad
function calcularEdad($fecha_nacimiento) {
    if (empty($fecha_nacimiento)) return 'No disponible';
    $fecha_nac = new DateTime($fecha_nacimiento);
    $hoy = new DateTime();
    $edad = $hoy->diff($fecha_nac);
    return $edad->y;
}

$edad = calcularEdad($miembro['fecha_nacimiento']);

// Formatear teléfono para WhatsApp
$telefonoWhatsApp = preg_replace('/[^0-9]/', '', $miembro['telefono']);
if (substr($telefonoWhatsApp, 0, 1) == '0') {
    $telefonoWhatsApp = '595' . substr($telefonoWhatsApp, 1);
}

// Leer mensaje de WhatsApp para previsualización
$mensajeWhatsapp = file_exists('../mensajes_whatsapp/mensaje.txt') ? file_get_contents('../mensajes_whatsapp/mensaje.txt') : 'Mensaje oficial RIPA';
$mensajePersonalizado = str_replace('[NOMBRE]', $miembro['nombre'] . ' ' . $miembro['apellido'], $mensajeWhatsapp);
$whatsappLink = "https://wa.me/{$telefonoWhatsApp}?text=" . urlencode($mensajePersonalizado);
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Editar Miembro - RIPA Admin</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
    <style>
        .info-extra {
            background: #f8f9fa;
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 20px;
            border-left: 4px solid #003366;
        }
        
        .info-extra p {
            margin: 8px 0;
        }
        
        .info-extra strong {
            color: #003366;
        }
        
        .btn-whatsapp-preview {
            background: #25D366;
            color: white;
            padding: 10px 20px;
            border-radius: 5px;
            text-decoration: none;
            display: inline-block;
            margin-top: 10px;
        }
        
        .btn-whatsapp-preview:hover {
            background: #128C7E;
        }
        
        .preview-mensaje {
            background: #e8f5e9;
            padding: 15px;
            border-radius: 8px;
            margin-top: 15px;
            font-size: 13px;
            border-left: 4px solid #25D366;
        }
        
        .edad-badge {
            display: inline-block;
            background: #ff9800;
            color: white;
            padding: 3px 10px;
            border-radius: 15px;
            font-size: 12px;
            margin-left: 10px;
        }
        
        .fecha-registro {
            font-size: 12px;
            color: #666;
            margin-top: 5px;
        }
        
        .acciones-adicionales {
            margin-top: 20px;
            padding-top: 20px;
            border-top: 1px solid #ddd;
            display: flex;
            gap: 10px;
            justify-content: center;
        }
        
        .btn-eliminar {
            background: #dc3545;
        }
        
        .btn-eliminar:hover {
            background: #c82333;
        }
        
        .btn-volver {
            background: #6c757d;
        }
        
        .btn-volver:hover {
            background: #5a6268;
        }
        
        /* Estilos para el mapa */
        .mapa {
            width: 100%;
            height: 400px;
            border: 2px solid #003366;
            border-radius: 5px;
            margin: 10px 0;
        }
        
        .coordenadas-info {
            background: #e3f2fd;
            padding: 8px;
            border-radius: 5px;
            font-size: 12px;
            margin-top: 8px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>✏️ Editar Miembro RIPA</h1>
            <p>Modifique los datos del miembro seleccionado</p>
        </header>
        
        <nav>
            <a href="index.php">🏠 Inicio</a>
            <a href="miembros.php">← Volver a Miembros</a>
            <a href="verificar_cumpleanos.php">🎂 Cumpleaños</a>
            <a href="../logout.php">🚪 Cerrar Sesión</a>
        </nav>
        
        <?php echo $mensaje; ?>
        <?php echo $mensajeError; ?>
        
        <!-- Información adicional del miembro -->
        <div class="info-extra">
            <p>
                <strong>👤 Miembro:</strong> <?php echo htmlspecialchars($miembro['nombre'] . ' ' . $miembro['apellido']); ?>
                <span class="edad-badge">🎂 <?php echo $edad; ?> años</span>
            </p>
            <p><strong>📅 Fecha de Registro:</strong> <?php echo date('d/m/Y H:i:s', strtotime($miembro['fecha_registro'])); ?></p>
            <p><strong>🆔 ID:</strong> <?php echo $miembro['id']; ?></p>
            <?php if ($miembro['latitud'] && $miembro['longitud']): ?>
            <p><strong>📍 Coordenadas:</strong> <?php echo $miembro['latitud']; ?>, <?php echo $miembro['longitud']; ?></p>
            <?php endif; ?>
        </div>
        
        <!-- Enlace rápido a WhatsApp -->
        <div class="preview-mensaje">
            <strong>📱 Contacto directo WhatsApp:</strong><br>
            <small>Haga clic para enviar mensaje a este miembro:</small><br>
            <a href="<?php echo $whatsappLink; ?>" target="_blank" class="btn-whatsapp-preview">
                💬 Enviar mensaje por WhatsApp a <?php echo htmlspecialchars($miembro['nombre']); ?>
            </a>
            <div style="margin-top: 10px; font-size: 12px; color: #666;">
                <strong>Vista previa del mensaje:</strong><br>
                <?php echo nl2br(htmlspecialchars(substr($mensajePersonalizado, 0, 150))) . '...'; ?>
            </div>
        </div>
        
        <!-- Formulario de edición -->
        <form method="POST" style="margin-top: 30px;">
            <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px;">
                <div>
                    <div class="form-group">
                        <label>Nombre *</label>
                        <input type="text" name="nombre" required value="<?php echo htmlspecialchars($miembro['nombre']); ?>">
                    </div>
                    
                    <div class="form-group">
                        <label>Apellido *</label>
                        <input type="text" name="apellido" required value="<?php echo htmlspecialchars($miembro['apellido']); ?>">
                    </div>
                    
                    <div class="form-group">
                        <label>Número de Cédula *</label>
                        <input type="text" name="cedula" required value="<?php echo htmlspecialchars($miembro['cedula']); ?>">
                    </div>
                    
                    <div class="form-group">
                        <label>Fecha de Nacimiento *</label>
                        <input type="date" name="fecha_nacimiento" required value="<?php echo $miembro['fecha_nacimiento']; ?>">
                        <small>Edad calculada: <?php echo $edad; ?> años</small>
                    </div>
                    
                    <div class="form-group">
                        <label>Teléfono (WhatsApp) *</label>
                        <input type="tel" name="telefono" placeholder="0991XXXXXX" required value="<?php echo htmlspecialchars($miembro['telefono']); ?>">
                        <small>Formato: 0991XXXXXX (sin código de país)</small>
                    </div>
                    
                    <div class="form-group">
                        <label>País *</label>
                        <input type="text" name="pais" required value="<?php echo htmlspecialchars($miembro['pais']); ?>">
                    </div>
                    
                    <div class="form-group">
                        <label>Departamento *</label>
                        <select name="departamento" id="departamento" required>
                            <option value="<?php echo htmlspecialchars($miembro['departamento']); ?>">
                                <?php echo htmlspecialchars($miembro['departamento']); ?>
                            </option>
                        </select>
                    </div>
                    
                    <div class="form-group">
                        <label>Ciudad *</label>
                        <input type="text" name="ciudad" required value="<?php echo htmlspecialchars($miembro['ciudad']); ?>">
                    </div>
                </div>
                
                <div>
                    <div class="form-group">
                        <label>📍 Geoposición (Arrastra el marcador para ajustar)</label>
                        <div id="mapa" class="mapa"></div>
                        <div class="coordenadas-info">
                            <strong>Coordenadas actuales:</strong><br>
                            Latitud: <span id="latitud_mostrar"><?php echo $miembro['latitud'] ?? 'No establecida'; ?></span><br>
                            Longitud: <span id="longitud_mostrar"><?php echo $miembro['longitud'] ?? 'No establecida'; ?></span>
                        </div>
                        <input type="hidden" name="latitud" id="latitud" value="<?php echo $miembro['latitud'] ?? '-25.3005'; ?>">
                        <input type="hidden" name="longitud" id="longitud" value="<?php echo $miembro['longitud'] ?? '-57.6362'; ?>">
                        <small style="display: block; margin-top: 5px;">
                            💡 Arrastra el marcador para actualizar la ubicación
                        </small>
                    </div>
                </div>
            </div>
            
            <div style="display: flex; gap: 10px; margin-top: 20px;">
                <button type="submit">💾 Guardar Cambios</button>
                <a href="miembros.php" class="btn-volver" style="background: #6c757d; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;">Cancelar</a>
            </div>
        </form>
        
        <!-- Acciones adicionales -->
        <div class="acciones-adicionales">
            <a href="enviar_mensaje.php?miembro_id=<?php echo $miembro['id']; ?>" class="btn" style="background: #25D366;">
                📨 Enviar mensaje personalizado
            </a>
            <a href="verificar_cumpleanos.php?miembro_id=<?php echo $miembro['id']; ?>" class="btn" style="background: #ff9800;">
                🎂 Ver cumpleaños
            </a>
            <a href="?eliminar=<?php echo $miembro['id']; ?>" 
               class="btn btn-eliminar" 
               style="background: #dc3545;"
               onclick="return confirm('¿Está seguro de eliminar permanentemente a <?php echo addslashes($miembro['nombre'] . ' ' . $miembro['apellido']); ?>?\n\nEsta acción no se puede deshacer.');">
                🗑️ Eliminar Miembro
            </a>
        </div>
    </div>
    
    <script src="../js/mapa.js"></script>
    <script>
        // Inicializar mapa con la ubicación del miembro
        let map;
        let marker;
        
        function initMapa() {
            const lat = parseFloat(document.getElementById('latitud').value) || -25.3005;
            const lng = parseFloat(document.getElementById('longitud').value) || -57.6362;
            
            map = L.map('mapa').setView([lat, lng], 15);
            
            // Capa híbrida
            L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
                attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> &copy; <a href="https://carto.com/attributions">CARTO</a>',
                subdomains: 'abcd',
                maxZoom: 19
            }).addTo(map);
            
            // Capa satelital
            const satelliteLayer = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {
                attribution: 'Tiles &copy; Esri'
            });
            
            // Control de capas
            const baseMaps = {
                "🌍 Vista Híbrida": L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png'),
                "🛰️ Satélite": satelliteLayer,
                "🗺️ Calles": L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png')
            };
            
            L.control.layers(baseMaps).addTo(map);
            
            // Marcador arrastrable
            marker = L.marker([lat, lng], { draggable: true }).addTo(map);
            
            marker.on('dragend', function(e) {
                const position = marker.getLatLng();
                document.getElementById('latitud').value = position.lat.toFixed(8);
                document.getElementById('longitud').value = position.lng.toFixed(8);
                document.getElementById('latitud_mostrar').innerHTML = position.lat.toFixed(6);
                document.getElementById('longitud_mostrar').innerHTML = position.lng.toFixed(6);
                obtenerDireccion(position.lat, position.lng);
            });
            
            map.on('click', function(e) {
                marker.setLatLng(e.latlng);
                document.getElementById('latitud').value = e.latlng.lat.toFixed(8);
                document.getElementById('longitud').value = e.latlng.lng.toFixed(8);
                document.getElementById('latitud_mostrar').innerHTML = e.latlng.lat.toFixed(6);
                document.getElementById('longitud_mostrar').innerHTML = e.latlng.lng.toFixed(6);
                obtenerDireccion(e.latlng.lat, e.latlng.lng);
            });
        }
        
        function obtenerDireccion(lat, lng) {
            const url = `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lng}&zoom=18`;
            fetch(url)
                .then(response => response.json())
                .then(data => {
                    if (data && data.display_name) {
                        const ciudad = data.address?.city || data.address?.town || data.address?.village || '';
                        if (ciudad && document.querySelector('input[name="ciudad"]').value === '') {
                            document.querySelector('input[name="ciudad"]').value = ciudad;
                        }
                    }
                })
                .catch(error => console.log('Error:', error));
        }
        
        // Cargar departamentos
        const departamentos = [
            "Alto Paraguay", "Alto Paraná", "Amambay", "Boquerón", "Caaguazú", 
            "Caazapá", "Canindeyú", "Central", "Concepción", "Cordillera", 
            "Guairá", "Itapúa", "Misiones", "Ñeembucú", "Paraguarí", 
            "Presidente Hayes", "San Pedro"
        ];
        
        function cargarDepartamentos() {
            const select = document.getElementById('departamento');
            const valorActual = '<?php echo htmlspecialchars($miembro['departamento']); ?>';
            
            select.innerHTML = '<option value="">Seleccione un departamento...</option>';
            departamentos.forEach(depto => {
                const option = document.createElement('option');
                option.value = depto;
                option.textContent = depto;
                if (depto === valorActual) {
                    option.selected = true;
                }
                select.appendChild(option);
            });
        }
        
        document.addEventListener('DOMContentLoaded', function() {
            cargarDepartamentos();
            initMapa();
        });
    </script>
</body>
</html>