<?php
// /cotizaciones/api/update_cot_item.php -> proxy a Node: POST /api/cotizaciones/items/update

session_start();
include '../../includes/session_control.php';

header('Content-Type: application/json; charset=UTF-8');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: 0');

if (!isset($_SESSION['user'])) {
    echo json_encode(['ok' => false, 'msg' => 'No autenticado']);
    exit;
}

require __DIR__ . '/_node.php';
require_once __DIR__ . '/../../includes/user_activity_log.php';

$token = cpn_node_token_or_fail();
$base = cpn_node_api_base();
$url = $base . '/api/cotizaciones/items/update';

$payload = [
    'id' => $_POST['id'] ?? 0,
];
if (isset($_POST['delete'])) {
    $payload['delete'] = 1;
} else {
    $payload['field'] = $_POST['field'] ?? '';
    $payload['value'] = $_POST['value'] ?? '';
}

$r = cpn_node_request('POST', $url, $token, $payload);
if (!isset($r['ok']) || $r['ok'] !== true) {
    $msg = $r['error']['message'] ?? 'No se pudo actualizar el ítem.';
    echo json_encode(['ok' => false, 'msg' => $msg]);
    exit;
}

echo json_encode(['ok' => true]);

$idItem = (int)($payload['id'] ?? 0);
$isDelete = isset($payload['delete']) && (int)$payload['delete'] === 1;
if ($idItem > 0) {
    cpn_activity_log_event(
        'Cotizaciones',
        $isDelete ? 'cotizaciones.item_delete' : 'cotizaciones.item_update',
        ($isDelete ? 'Eliminó ítem' : 'Actualizó ítem') . ' (detalle #' . $idItem . ')',
        'cotizacion_item',
        $idItem,
        $isDelete ? null : ['field' => (string)($payload['field'] ?? '')]
    );
}
