<?php
/**
 * Función para enviar mensajes de WhatsApp
 * Utiliza el script centralizado WhatsApp/index.php
 */

require_once __DIR__ . '/../WhatsApp/index.php';
require_once __DIR__ . '/db.php';

/**
 * Envía un mensaje de WhatsApp usando el script centralizado
 * 
 * @param string $telefono Número de teléfono (sin espacios)
 * @param string $mensaje Mensaje a enviar
 * @param bool $incluir_pie Si incluir el mensaje automático de pie
 * @return array Resultado de la operación ['success' => bool, 'message' => string, 'response' => string]
 */
function enviarWhatsApp($telefono, $mensaje, $incluir_pie = true) {
    // Usar la función centralizada de WhatsApp/index.php
    return enviarWhatsAppCentral($telefono, $mensaje, $incluir_pie);
}

/**
 * Envía notificación de nuevo pedido al administrador
 * 
 * @param array $pedido_data Datos del pedido de Pagopar
 * @return array Resultado de la operación
 */
function notificarPedidoAdmin($pedido_data) {
    try {
        $db = new Database();
        
        // Obtener número de WhatsApp del administrador
        $config = $db->query("SELECT whatsapp FROM configuracion LIMIT 1")->fetch(PDO::FETCH_ASSOC);
        
        if (!$config || empty($config['whatsapp'])) {
            throw new Exception('No se encontró el número de WhatsApp del administrador');
        }
        
        // Construir mensaje de notificación
        $mensaje = "🎉 *NUEVO PEDIDO CONFIRMADO*\n\n";
        $mensaje .= "💰 *Monto:* Gs. " . number_format($pedido_data['monto_total'], 0, ',', '.') . "\n";
        $mensaje .= "📦 *ID Pedido:* " . $pedido_data['id_pedido_comercio'] . "\n";
        $mensaje .= "💳 *Forma de Pago:* " . ($pedido_data['forma_pago'] ?? 'Pagopar') . "\n";
        $mensaje .= "📅 *Fecha:* " . date('d/m/Y H:i') . "\n\n";
        
        // Agregar datos del comprador si están disponibles
        if (!empty($pedido_data['datos_comprador'])) {
            $comprador = json_decode($pedido_data['datos_comprador'], true);
            if ($comprador) {
                $mensaje .= "👤 *DATOS DEL CLIENTE:*\n";
                $mensaje .= "• Nombre: " . ($comprador['nombre'] ?? 'No especificado') . "\n";
                $mensaje .= "• Email: " . ($comprador['email'] ?? 'No especificado') . "\n";
                $mensaje .= "• Teléfono: " . ($comprador['telefono'] ?? 'No especificado') . "\n";
                $mensaje .= "• Documento: " . ($comprador['documento'] ?? 'No especificado') . "\n";
                if (!empty($comprador['direccion'])) {
                    $mensaje .= "• Dirección: " . $comprador['direccion'] . "\n";
                }
                $mensaje .= "\n";
            }
        }
        
        // Agregar productos si están disponibles
        if (!empty($pedido_data['datos_productos'])) {
            $productos = json_decode($pedido_data['datos_productos'], true);
            if ($productos && is_array($productos)) {
                $mensaje .= "🛍️ *PRODUCTOS:*\n";
                foreach ($productos as $producto) {
                    $mensaje .= "• " . ($producto['nombre'] ?? 'Producto') . "\n";
                    $mensaje .= "  Cantidad: " . ($producto['cantidad'] ?? 1) . "\n";
                    $mensaje .= "  Precio: Gs. " . number_format($producto['precio_total'] ?? 0, 0, ',', '.') . "\n\n";
                }
            }
        }
        
        //$mensaje .= "⚡ Revisar pedidos en el panel de administración.";
        
        // Enviar WhatsApp
        return enviarWhatsApp($config['whatsapp'], $mensaje);
        
    } catch (Exception $e) {
        return [
            'success' => false,
            'message' => 'Error al notificar pedido: ' . $e->getMessage(),
            'response' => null
        ];
    }
}

/**
 * Envía confirmación de pedido al cliente
 * 
 * @param array $pedido_data Datos del pedido de Pagopar
 * @return array Resultado de la operación
 */
function notificarPedidoCliente($pedido_data) {
    try {
        // Obtener datos del comprador
        if (empty($pedido_data['datos_comprador'])) {
            throw new Exception('No se encontraron datos del comprador');
        }
        
        $comprador = json_decode($pedido_data['datos_comprador'], true);
        if (!$comprador || empty($comprador['telefono'])) {
            throw new Exception('No se encontró el número de teléfono del cliente');
        }
        
        // Construir mensaje de confirmación para el cliente
        $mensaje = "✅ *PAGO CONFIRMADO*\n\n";
        $mensaje .= "¡Hola " . ($comprador['nombre'] ?? 'Cliente') . "!\n\n";
        $mensaje .= "Tu pago ha sido procesado exitosamente.\n\n";
        
        $mensaje .= "📦 *DETALLES DEL PEDIDO:*\n";
        $mensaje .= "• ID Pedido: " . $pedido_data['id_pedido_comercio'] . "\n";
        $mensaje .= "• Monto: Gs. " . number_format($pedido_data['monto_total'], 0, ',', '.') . "\n";
        $mensaje .= "• Fecha: " . date('d/m/Y H:i') . "\n\n";
        
        // Agregar productos
        if (!empty($pedido_data['datos_productos'])) {
            $productos = json_decode($pedido_data['datos_productos'], true);
            if ($productos && is_array($productos)) {
                $mensaje .= "🛍️ *TUS PRODUCTOS:*\n";
                foreach ($productos as $producto) {
                    $mensaje .= "• " . ($producto['nombre'] ?? 'Producto') . "\n";
                    $mensaje .= "  Cantidad: " . ($producto['cantidad'] ?? 1) . "\n\n";
                }
            }
        }
        
        $mensaje .= "📧 Pronto recibirás más información sobre la entrega.\n\n";
        $mensaje .= "¡Gracias por tu compra!";
        
        // Enviar WhatsApp al cliente
        return enviarWhatsApp($comprador['telefono'], $mensaje);
        
    } catch (Exception $e) {
        return [
            'success' => false,
            'message' => 'Error al notificar cliente: ' . $e->getMessage(),
            'response' => null
        ];
    }
}
?>