<?php
session_start();
require_once 'db/config.php';

if (!isset($_SESSION['user_id'])) {
    http_response_code(403);
    echo json_encode(['error' => 'Acceso no autorizado.']);
    exit;
}

$data = json_decode(file_get_contents('php://input'), true);

if (!$data || !isset($data['id']) || !isset($data['field']) || !isset($data['value'])) {
    http_response_code(400);
    echo json_encode(['error' => 'Datos incompletos.']);
    exit;
}

$pedido_id = $data['id'];
$field = $data['field'];
$value = $data['value'];

$allowed_fields = ['codigo_rastreo', 'codigo_tracking'];
if (!in_array($field, $allowed_fields)) {
    http_response_code(400);
    echo json_encode(['error' => 'Campo no válido.']);
    exit;
}

try {
    $pdo = db();
    $sql = "UPDATE pedidos SET {$field} = ? WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$value, $pedido_id]);

    if ($stmt->rowCount() > 0) {
        echo json_encode(['success' => 'Pedido actualizado correctamente.']);
    } else {
        echo json_encode(['info' => 'No se realizaron cambios.']);
    }
} catch (PDOException $e) {
    http_response_code(500);
    echo json_encode(['error' => 'Error al actualizar la base de datos: ' . $e->getMessage()]);
}
?>