<?php
$servername = "208.109.71.144";
$username = "ruletaadmin1990";
$password = "Nd;GfPL#}*5s";
$dbname = "ruleta_db";

// Crear la conexión
$conn = new mysqli($servername, $username, $password, $dbname);

// Verificar la conexión
if ($conn->connect_error) {
  die(json_encode(["error" => "Conexión fallida: " . $conn->connect_error]));
}

// Obtener la IP del cliente en el servidor
$ip_address = $_SERVER['REMOTE_ADDR'];

// Recibir el user_agent desde el frontend
$data = json_decode(file_get_contents("php://input"), true);
$user_agent = $data['user_agent'] ?? null;

// Establecer las variables de sesión en MariaDB
$conn->query("SET @user_agent = '$user_agent'");
$conn->query("SET @ip_address = '$ip_address'");


// Consultar los premios con cantidad mayor que 0
$sql = "SELECT id, nombre, probabilidad, cantidad, inicio, final FROM premios3 WHERE cantidad > 0";
$result = $conn->query($sql);

$premios = array();
$totalProbabilidad = 0;

if ($result->num_rows > 0) {
  // Calcular el total de probabilidades
  while($row = $result->fetch_assoc()) {
    $premios[] = $row;
    $totalProbabilidad += $row['probabilidad'];
  }

  // Generar un número aleatorio entre 0 y el total de probabilidades
  $random = mt_rand(0, $totalProbabilidad * 1000) / 1000; // Se multiplica por 1000 para trabajar con 3 decimales
  $suma = 0;

  // Seleccionar el premio basado en la probabilidad acumulada
  foreach ($premios as $premio) {
    $suma += $premio['probabilidad'];
    if ($random <= $suma) {
      // copiar esta parte Establecer las variables de sesión en MariaDB
      $conn->query("SET @user_agent = '$user_agent'");
      $conn->query("SET @ip_address = '$ip_address'");
      // Actualizar la cantidad del premio seleccionado
      $stmt = $conn->prepare("UPDATE premios3 SET cantidad = cantidad - 1 WHERE id = ?");
      if ($stmt) {
        $stmt->bind_param("i", $premio['id']);
        $stmt->execute();
        $stmt->close();

        // Devolver el premio seleccionado con sus rangos de ángulo
        echo json_encode([
          'id' => $premio['id'],
          'nombre' => $premio['nombre'],
          'inicio' => $premio['inicio'],
          'final' => $premio['final']
        ]);
        exit();  // Salir inmediatamente después de devolver el premio seleccionado
      } else {
        echo json_encode(["error" => "Error en la preparación de la actualización"]);
      }
      break;
    }
  }
} else {
  echo json_encode(["error" => "No hay premios disponibles"]);
}

$conn->close();
?>
