<?php
session_start();
error_reporting(0);
ini_set('display_errors', 0);
header('Content-Type: application/json');

require_once 'config.php';
$pdo = getConexaoAtiva();

if (!isset($_SESSION['user_id'])) {
    echo json_encode(['sucesso' => false, 'erro' => 'Sessão expirada.']);
    exit;
}

$id_cliente = isset($_POST['id_cliente']) ? intval($_POST['id_cliente']) : 0;
$id_logado = $_SESSION['user_id'];
$is_admin = (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin');

if ($id_cliente <= 0) {
    echo json_encode(['sucesso' => false, 'erro' => 'ID inválido.']);
    exit;
}

try {
    // Verifica se o cliente existe e se pertence a você
    if ($is_admin) {
        $stmtCheck = $pdo->prepare("SELECT id FROM users WHERE id = ?");
        $stmtCheck->execute([$id_cliente]);
    } else {
        $stmtCheck = $pdo->prepare("SELECT id FROM users WHERE id = ? AND member_id = ?");
        $stmtCheck->execute([$id_cliente, $id_logado]);
    }

    if ($stmtCheck->rowCount() == 0) {
        echo json_encode(['sucesso' => false, 'erro' => 'Cliente não encontrado.']);
        exit;
    }

    // 1. Derruba a conexão "fantasma" que ficou presa online
    try {
        $pdo->prepare("DELETE FROM user_activity_now WHERE user_id = ?")->execute([$id_cliente]);
    } catch (Exception $e) {}

    // 2. Limpa IPs travados que o servidor bloqueou
    try {
        $pdo->prepare("DELETE FROM ips_in_use WHERE user = ?")->execute([$id_cliente]);
    } catch (Exception $e) {}

    // 3. Limpa aparelhos travados pelo MAC Address
    try {
        $pdo->prepare("DELETE FROM mag_devices WHERE user_id = ?")->execute([$id_cliente]);
    } catch (Exception $e) {}

    echo json_encode(['sucesso' => true, 'msg' => 'Cliente sincronizado e resetado com sucesso!']);

} catch (Exception $e) {
    echo json_encode(['sucesso' => false, 'erro' => 'Erro: ' . $e->getMessage()]);
}
?>