const fs = require('fs'); const path = require('path'); // Cargar ubicaciones guardadas desde el archivo JSON const locationsFilePath = path.join(__dirname, '../database/ubications.json'); let destinationLocation = null; // Variable para guardar la ubicación deseada temporalmente function handleGuideCommand(client, message) { const commandParts = message.body.trim().split(' '); if (commandParts.length < 2) { message.reply('❌ Por favor, especifica la ubicación deseada. Ejemplo: !guiaciudad casa'); return; } const locationName = commandParts[1]; let locations; try { locations = JSON.parse(fs.readFileSync(locationsFilePath, 'utf8')); } catch (error) { message.reply('❌ No se pudo leer el archivo de ubicaciones. Asegúrate de que exista y esté en formato JSON.'); console.error('Error leyendo ubicaciones:', error); return; } if (!locations[locationName]) { message.reply(`❌ Ubicación "${locationName}" no encontrada en tu base de datos.`); return; } // Guardar la ubicación deseada temporalmente destinationLocation = locations[locationName]; message.reply(`📍 Ubicación "${locationName}" encontrada. Por favor, envía tu ubicación actual para planificar la ruta.`); } function handleLocationMessage(client, message) { if (destinationLocation) { const currentLatitude = message.location.latitude; const currentLongitude = message.location.longitude; const destinationLatitude = destinationLocation.latitude; const destinationLongitude = destinationLocation.longitude; // Generar el enlace de Google Maps para la ruta const mapsUrl = `https://www.google.com/maps/dir/?api=1&origin=${currentLatitude},${currentLongitude}&destination=${destinationLatitude},${destinationLongitude}`; // Responder con el enlace de Google Maps message.reply(`🗺️ Aquí tienes la ruta a la ubicación deseada: ${mapsUrl}`); // Limpiar la ubicación de destino para la próxima vez destinationLocation = null; } else { message.reply('❌ No has especificado una ubicación de destino. Usa el comando !guiaciudad {ubicacion_deseada} primero.'); } } module.exports = { handleGuideCommand, handleLocationMessage };