<?php

// Recibir y decodificar JSON
$_POST = json_decode(file_get_contents('php://input'), true);

if (!isset($_POST['token'], $_POST['bd'], $_POST['idCliente'], $_POST['sucursal'])) {
    echo json_encode(["error" => "Datos incompletos"]);
    exit;
}

$token = trim($_POST['token']);
$bdname = trim($_POST['bd']);
$idcliente = intval($_POST['idCliente']);
$sucursal = trim($_POST['sucursal']);

$servername = "directoriofitness.com.mx";
$username = "direct18";
$password = "L4LL4v3M@3str@";

try {
    $conn = new mysqli($servername, $username, $password, $bdname);

    if ($conn->connect_error) {
        die(json_encode(["error" => "Conexion fallida: " . $conn->connect_error]));
    }

    // 1. Buscamos el token y el idSocio actual asociado a ese token
    $query_check = "SELECT idSocio FROM push_notificaciones WHERE token = ?";
    $stmt_check = $conn->prepare($query_check);
    $stmt_check->bind_param("s", $token);
    $stmt_check->execute();
    $result_check = $stmt_check->get_result();

    if ($row = $result_check->fetch_assoc()) {
        // EL TOKEN EXISTE
        if (intval($row['idSocio']) !== $idcliente) {
            // El token existe pero pertenece a OTRO usuario (cambio de cuenta)
            $query_update = "UPDATE push_notificaciones SET idSocio = ?, sucursal = ?, activo = 1 WHERE token = ?";
            $stmt_update = $conn->prepare($query_update);
            $stmt_update->bind_param("iss", $idcliente, $sucursal, $token);
            
            if ($stmt_update->execute()) {
                echo json_encode(["success" => "Token actualizado para el nuevo usuario."]);
            } else {
                echo json_encode(["error" => "Error al actualizar el usuario del token."]);
            }
            $stmt_update->close();
        } else {
            // El token ya existe y ya pertenece a este usuario
            echo json_encode(["info" => "El token ya está registrado correctamente para este usuario."]);
        }
    } else {
        // EL TOKEN NO EXISTE: Proceder con la inserción normal
        $query_insert = "INSERT INTO push_notificaciones (idSocio, token, sucursal, notificacion, activo) VALUES (?, ?, ?, 1, 1)";
        $stmt_insert = $conn->prepare($query_insert);
        $stmt_insert->bind_param("iss", $idcliente, $token, $sucursal);
        
        if ($stmt_insert->execute()) {
            echo json_encode(["success" => "Token guardado correctamente."]);
        } else {
            echo json_encode(["error" => "Hubo un error al guardar el token."]);
        }
        $stmt_insert->close();
    }

    $stmt_check->close();
    $conn->close();

} catch (Exception $e) {
    echo json_encode(["error" => "Error: " . $e->getMessage()]);
}
?>
