<?php
session_start();
include_once '../config/database.php';

header('Content-Type: application/json');

try {
    // Validar sesión
    if (!isset($_SESSION['user']['codempleado'])) {
        echo json_encode([
            'success' => false,
            'message' => 'Sesión no válida'
        ]);
        exit;
    }
    
    $database = new Database();
    $conn = $database->getConnection();
    
    // Obtener la empresa del usuario logueado
    $codempresaUsuario = null;
    $stmt_empresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmt_empresa->execute([$_SESSION['user']['codempleado']]);
    $resultado_empresa = $stmt_empresa->fetch(PDO::FETCH_ASSOC);
    if ($resultado_empresa) {
        $codempresaUsuario = $resultado_empresa['codempresa'];
    }
    
    // Validar datos requeridos
    if (!isset($_POST['telefono']) || !isset($_POST['mensaje'])) {
        echo json_encode([
            'success' => false,
            'message' => 'Datos requeridos faltantes'
        ]);
        exit;
    }
    
    $telefono = trim($_POST['telefono']);
    $mensaje = trim($_POST['mensaje']);
    $nombre_cliente = isset($_POST['nombre_cliente']) ? trim($_POST['nombre_cliente']) : '';
    
    if (empty($telefono)) {
        echo json_encode([
            'success' => false,
            'message' => 'El número de teléfono no puede estar vacío'
        ]);
        exit;
    }
    
    if (empty($mensaje)) {
        echo json_encode([
            'success' => false,
            'message' => 'El mensaje no puede estar vacío'
        ]);
        exit;
    }
    
    // Validar formato de teléfono
    if (!preg_match('/^[0-9+\-\s()]+$/', $telefono)) {
        echo json_encode([
            'success' => false,
            'message' => 'Formato de teléfono inválido'
        ]);
        exit;
    }
    
    // Limpiar número de teléfono (remover espacios, guiones, paréntesis)
    $telefono_limpio = preg_replace('/[^0-9+]/', '', $telefono);
    
    // Insertar mensaje en la base de datos
    $insert_query = "INSERT INTO tmensajes_whatsapp (venta_id, telefono, mensaje, estado, codempresa, codempleado, nombre_cliente) 
                     VALUES (?, ?, ?, 'pendiente', ?, ?, ?)";
    
    $stmt_insert = $conn->prepare($insert_query);
    $result = $stmt_insert->execute([
        null, // venta_id será null ya que no estamos vinculando a un cliente específico
        $telefono_limpio,
        $mensaje,
        $codempresaUsuario,
        $_SESSION['user']['codempleado'],
        $nombre_cliente
    ]);
    
    if ($result) {
        $mensaje_id = $conn->lastInsertId();
        
        // Aquí iría la lógica real para enviar el mensaje por WhatsApp
        // Por ahora simulamos el envío exitoso
        $update_query = "UPDATE tmensajes_whatsapp SET estado = 'enviado' WHERE id = ?";
        $stmt_update = $conn->prepare($update_query);
        $stmt_update->execute([$mensaje_id]);
        
        echo json_encode([
            'success' => true,
            'message' => 'Mensaje enviado correctamente',
            'mensaje_id' => $mensaje_id,
            'whatsapp_url' => 'https://wa.me/' . $telefono_limpio . '?text=' . urlencode($mensaje)
        ]);
    } else {
        echo json_encode([
            'success' => false,
            'message' => 'Error al guardar el mensaje'
        ]);
    }
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => 'Error del servidor: ' . $e->getMessage()
    ]);
}
?>
