<?php
header('Content-Type: application/json; charset=utf-8');
if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}
require __DIR__ . '/../includes/session_control.php';
require_once __DIR__ . '/../cotizaciones/api/_node.php';
require_once __DIR__ . '/../includes/user_activity_log.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['success' => false, 'message' => 'Método no permitido']);
    exit;
}

$idVenta = isset($_POST['idVenta']) ? (int)$_POST['idVenta'] : 0;
$idVariante = isset($_POST['idProductoVariante']) ? (int)$_POST['idProductoVariante'] : 0;
$cantidad = isset($_POST['cantidad']) ? (int)$_POST['cantidad'] : 1;

if (!$idVenta || !$idVariante) {
    http_response_code(400);
    echo json_encode(['success' => false, 'message' => 'Parámetros inválidos']);
    exit;
}

$token = cpn_node_token_or_fail();
$base = cpn_node_api_base();
$url = $base . '/api/ventas/ordenes/' . urlencode((string)$idVenta) . '/detalle';

$r = cpn_node_request('POST', $url, $token, [
    'idProductoVariante' => $idVariante,
    'cantidad' => $cantidad,
]);

if (!isset($r['ok']) || $r['ok'] !== true) {
    http_response_code($r['_http'] ?? 500);
    $msg = $r['error']['message'] ?? 'Error agregando ítem.';
    echo json_encode(['success' => false, 'message' => $msg]);
    exit;
}

echo json_encode(['success' => true]);

cpn_activity_log_event(
    'Ventas',
    'ventas.item_add',
    'Agregó ítem a la venta #' . $idVenta,
    'venta',
    $idVenta,
    ['idProductoVariante' => $idVariante, 'cantidad' => $cantidad]
);
