<?php
session_start();
header('Content-Type: application/json');

// Check for user role
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'Administrador') {
    echo json_encode(['success' => false, 'message' => 'Acceso no autorizado.']);
    exit;
}

// Check for POST method
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'Método no permitido.']);
    exit;
}

// Get input data
$pedido_id = $_POST['pedido_id'] ?? null;
$estado_pago = $_POST['estado_pago'] ?? null;

// Validate input
if (empty($pedido_id) || empty($estado_pago)) {
    echo json_encode(['success' => false, 'message' => 'Datos incompletos.']);
    exit;
}

$allowed_statuses = ['Pendiente a verificación', 'Verificado'];
if (!in_array($estado_pago, $allowed_statuses)) {
    echo json_encode(['success' => false, 'message' => 'Estado no válido.']);
    exit;
}

require_once 'db/config.php';

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

    if ($success) {
        echo json_encode(['success' => true, 'message' => 'Estado de pago actualizado.']);
    } else {
        echo json_encode(['success' => false, 'message' => 'No se pudo actualizar la base de datos.']);
    }
} catch (PDOException $e) {
    // Log error to a file in a real application
    // error_log($e->getMessage());
    echo json_encode(['success' => false, 'message' => 'Error de base de datos.']);
}
