<?php
// update_gasto_general.php
session_start();
header('Content-Type: application/json');

include '../includes/session_control.php';
require_once __DIR__ . '/../cotizaciones/api/_node.php';
require_once __DIR__ . '/../includes/user_activity_log.php';

$id    = isset($_POST['id'])    ? intval($_POST['id'])    : 0;
$field = isset($_POST['field']) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['field']) : '';
$value = $_POST['value'] ?? '';

$response = ['success' => false];

if ($id <= 0 || $field === '') {
    $response['error'] = 'Parámetros inválidos';
    echo json_encode($response);
    exit;
}

$token = cpn_node_token_or_fail();
$base = cpn_node_api_base();

$resp = cpn_node_request('POST', $base . '/api/gastos/generales/update-field', $token, [
    'id' => $id,
    'field' => $field,
    'value' => $value,
]);

if (!($resp['ok'] ?? false)) {
    $response['error'] = $resp['error']['message'] ?? 'Error actualizando';
    echo json_encode($response);
    exit;
}

cpn_activity_log_event(
    'Gastos',
    'gastos.general_update_field',
    'Actualizó gasto #' . $id . ' (campo: ' . $field . ')',
    'gasto',
    $id,
    ['field' => $field]
);

echo json_encode(['success' => true]);
