<?php
// update_producto.php
include '../includes/session_control.php';
require_once '../cotizaciones/api/_node.php';
require_once __DIR__ . '/../includes/user_activity_log.php';
header('Content-Type: application/json');

// Recibir datos
$id     = isset($_POST['id'])            ? intval($_POST['id'])       : 0;
$field  = isset($_POST['field'])         ? $_POST['field']            : '';
$value  = isset($_POST['value'])         ? $_POST['value']            : '';

// Lista blanca de campos editables
$allowed = [
    'idEstado',
    'idTipoProducto',
    'idTipoEnvio',
    'idProveedor',
    'idImpuesto',
    'referenciaCPN',
    'referenciaProveedor',
    'nombre',
    'descripcion',
    'txtMedidas',
    'txtMaterial',
    'txtMarca',
    'txtAreaLogo',
    'txtEmpaque',
    'txtObservaciones',
    'txtObservacionesMarca',
    'notasInternas',
    'urlExterna',
    'wp_id',
    'ventaMinima',
    'ventaMultiplo',
    'seo_title',
    'seo_short_desc',
    'yoast_meta_desc',
    'seo_keywords'
];

if (!$id || !in_array($field, $allowed)) {
    echo json_encode(['status' => 'error', 'msg' => 'Parámetros inválidos']);
    exit;
}

$token = cpn_node_token_or_fail();
$base = cpn_node_api_base();

$r = cpn_node_request('PATCH', $base . '/api/productos/' . urlencode((string)$id), $token, [
    'field' => $field,
    'value' => $value,
]);

if (!empty($r['ok'])) {
    cpn_activity_log_event(
        'Productos',
        'productos.update_field',
        'Actualizó producto #' . $id . ' (campo: ' . $field . ')',
        'producto',
        $id,
        ['field' => $field]
    );
    echo json_encode(['status' => 'ok']);
    exit;
}

$msg = $r['error']['message'] ?? 'No se pudo actualizar';
echo json_encode(['status' => 'error', 'msg' => $msg]);
