<?php
require_once '../includes/config.php';
require_once '../includes/db.php';

session_start();

// Verificar si el usuario está logueado y es admin
if (!isset($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    die(json_encode(['error' => 'No autorizado']));
}

if (!isset($_GET['term'])) {
    die(json_encode(['error' => 'Parámetro de búsqueda no proporcionado']));
}

$db = new Database();
$pdo = $db->getPDO();

$termino = trim($_GET['term']);
$termino = "%{$termino}%";

$sql = "SELECT 
            id_cliente,
            tipo_documento,
            numero_documento,
            nombre,
            apellidos,
            razon_social,
            email,
            telefono_principal
        FROM clientes 
        WHERE numero_documento LIKE :termino 
        OR nombre LIKE :termino 
        OR apellidos LIKE :termino 
        OR razon_social LIKE :termino
        LIMIT 10";

try {
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':termino', $termino, PDO::PARAM_STR);
    $stmt->execute();
    $clientes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Formatear los resultados para mostrar
    $resultados = array_map(function($cliente) {
        return [
            'id' => $cliente['id_cliente'],
            'text' => $cliente['tipo_documento'] . ': ' . $cliente['numero_documento'] . ' - ' . 
                     ($cliente['razon_social'] ?: ($cliente['nombre'] . ' ' . $cliente['apellidos'])),
            'cliente' => $cliente
        ];
    }, $clientes);
    
    echo json_encode(['results' => $resultados]);
} catch (PDOException $e) {
    echo json_encode(['error' => 'Error en la búsqueda']);
}
