<?php
include 'conexion.php';
session_start();

if (!isset($_SESSION['id_usuario'])) {
    echo json_encode(['status' => 'error', 'mensaje' => 'No autenticado']);
    exit;
}

$id_usuario = $_SESSION['id_usuario'];
$usuario = $conexion->query("SELECT id_empresa FROM usuarios_sistema WHERE id_usuario = $id_usuario")->fetch_assoc();
$id_empresa = $usuario['id_empresa'];

// Paginación
$limit = 5;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $limit;

// Filtro por nombre de proveedor (opcional)
$search = isset($_GET['search']) ? $conexion->real_escape_string($_GET['search']) : '';

// Consulta con paginación y búsqueda
$query = "
    SELECT g.id_guia, g.tipo_guia, g.numero_guia, g.fecha_guia, p.nombre AS nombre_proveedor, g.detalle,
           COUNT(DISTINCT dgp.id_producto) AS productos,
           COUNT(DISTINCT dgs.id_serie) AS series
    FROM guias_ingreso g
    LEFT JOIN proveedores p ON g.id_proveedor = p.id_proveedor
    LEFT JOIN detalle_guia_productos dgp ON g.id_guia = dgp.id_guia
    LEFT JOIN detalle_guia_series dgs ON g.id_guia = dgs.id_guia
    WHERE g.id_empresa = $id_empresa
    AND p.nombre LIKE '%$search%'
    GROUP BY g.id_guia
    ORDER BY g.fecha_guia DESC
    LIMIT $limit OFFSET $offset
";

$resultado = $conexion->query($query);

$guias = [];
while ($fila = $resultado->fetch_assoc()) {
    $guias[] = $fila;
}

// Obtener total de guías para paginación
$totalQuery = "
    SELECT COUNT(g.id_guia) AS total
    FROM guias_ingreso g
    LEFT JOIN proveedores p ON g.id_proveedor = p.id_proveedor
    WHERE g.id_empresa = $id_empresa
    AND p.nombre LIKE '%$search%'
";

$totalResultado = $conexion->query($totalQuery);
$total = $totalResultado->fetch_assoc()['total'];
$totalPages = ceil($total / $limit);

echo json_encode([
    'status' => 'ok',
    'guias' => $guias,
    'totalPages' => $totalPages,
    'currentPage' => $page
]);
?>
