<?php
session_start();
include '../includes/session_control.php';
require __DIR__ . '/api/_node.php';

header('Content-Type: application/json; charset=utf-8');

$cotizacionId = isset($_GET['cotizacionId']) ? (int)$_GET['cotizacionId'] : 0;
if ($cotizacionId <= 0) {
    http_response_code(400);
    echo json_encode(['error' => 'Missing cotizacionId']);
    exit;
}

$token = cpn_node_token_or_fail();
$base = cpn_node_api_base();

// Node source of truth
$url = $base . '/api/cotizaciones/' . $cotizacionId . '/items';
$r = cpn_node_request('GET', $url, $token);
if (!isset($r['ok']) || $r['ok'] !== true) {
    http_response_code($r['_http'] ?? 500);
    $msg = $r['error']['message'] ?? 'Error consultando items.';
    echo json_encode(['error' => $msg]);
    exit;
}

$items = $r['data'] ?? [];
if (!is_array($items)) $items = [];

// Compat: devolver array plano como antes
$out = [];
foreach ($items as $it) {
    if (!is_array($it)) continue;
    $precio = (float)($it['precioVentaProducto'] ?? 0) + (float)($it['precioVentaServicio'] ?? 0);
    $out[] = [
        'referenciaCPN' => $it['referenciaCPN'] ?? null,
        'cantidad' => $it['cantidad'] ?? null,
        'precioVenta' => $precio,
        'observaciones' => $it['observaciones'] ?? null,
        'Producto' => $it['desc'] ?? null,
        'txtColor' => null,
        'Impuesto' => $it['porcentajeImpuesto'] ?? null,
        'linkImagen' => $it['img'] ?? null,
        'inventario' => $it['inventario'] ?? null,
        'fechaActualizacion' => $it['fechaActualizacion'] ?? null,
        'wp_id' => $it['wp_id'] ?? null,
        'urlExterna' => $it['urlExterna'] ?? null,
        'id' => $it['id'] ?? null,
    ];
}

echo json_encode($out);
exit;
