<?php
/**
 * Compatibilidad: actualiza estado_entrega (legacy POST estado).
 */
session_start();
header('Content-Type: application/json; charset=utf-8');

if (empty($_SESSION['user_id'])) {
    http_response_code(401);
    echo json_encode(['success' => false, 'message' => 'No autorizado']);
    exit;
}

require_once __DIR__ . '/../models/model_pedido.php';

if (!isset($_POST['id_pedido'], $_POST['estado'])) {
    echo json_encode(['success' => false, 'message' => 'Faltan parámetros.']);
    exit;
}

$id_pedido = (int)$_POST['id_pedido'];
$estado = strtoupper(trim($_POST['estado']));

$mapEntrega = [
    'PENDIENTE' => 'PENDIENTE',
    'ENTREGADO' => 'ENTREGADO',
    'CANCELADO' => 'CANCELADO',
    'PAGADO' => 'PENDIENTE',
];

if (!isset($mapEntrega[$estado])) {
    echo json_encode(['success' => false, 'message' => 'Estado no válido.']);
    exit;
}

$pedidoModel = new Pedido();
$estadoPago = null;
$estadoEntrega = $mapEntrega[$estado];

if ($estado === 'PAGADO') {
    $estadoPago = 'PAGADO';
}
if ($estado === 'CANCELADO') {
    $estadoPago = 'RECHAZADO';
}

if ($pedidoModel->updateEstados($id_pedido, $estadoPago, $estadoEntrega)) {
    echo json_encode(['success' => true, 'message' => 'Estado actualizado.']);
} else {
    echo json_encode(['success' => false, 'message' => 'No se pudo actualizar el estado.']);
}
