<?php
require_once 'conexao.php';
session_start();

// CSRF Token
if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// Login check
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    header('Location: login.php');
    exit;
}

$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id) {
    die("Tenant não identificado.");
}

// Exibir mensagens
if (isset($_SESSION['mensagem'])) {
    echo '<div class="mensagem-flutuante" id="mensagemFlutuante">'
       . htmlspecialchars($_SESSION['mensagem'])
       . '</div>';
    unset($_SESSION['mensagem']);

    echo '<script>
            setTimeout(function() {
                const msg = document.getElementById("mensagemFlutuante");
                if (msg) msg.style.display = "none";
            }, 3000);
          </script>';
}

// Obter configuração SIP
$sql = "SELECT * FROM config_sip WHERE tenant_id = ? LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$resultado = $stmt->get_result();
$config = $resultado->fetch_assoc();
$stmt->close();

// Obter status SIP (exemplo de tabela status_sip)
$sql_status = "SELECT registrado FROM status_sip WHERE tenant_id = ? LIMIT 1";
$stmt_status = $conn->prepare($sql_status);
$stmt_status->bind_param("i", $tenant_id);
$stmt_status->execute();
$result_status = $stmt_status->get_result();
$status_sip = $result_status->fetch_assoc();
$stmt_status->close();

// Salvar configurações (formulário)
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['csrf_token']) && $_POST['csrf_token'] === $_SESSION['csrf_token']) {
    $servidor  = trim($_POST['servidor']);
    $usuario   = trim($_POST['usuario']);
    $senha     = trim($_POST['senha']);
    $porta     = intval($_POST['porta']);
    $protocolo = trim($_POST['protocolo']);

    if ($servidor && $usuario && $senha && $porta > 0) {
        if ($config) {
            $sql = "UPDATE config_sip SET servidor=?, usuario=?, senha=?, porta=?, protocolo=? WHERE tenant_id=?";
            $stmt = $conn->prepare($sql);
            $stmt->bind_param("sssssi", $servidor, $usuario, $senha, $porta, $protocolo, $tenant_id);
        } else {
            $sql = "INSERT INTO config_sip (tenant_id, servidor, usuario, senha, porta, protocolo) VALUES (?, ?, ?, ?, ?, ?)";
            $stmt = $conn->prepare($sql);
            $stmt->bind_param("isssis", $tenant_id, $servidor, $usuario, $senha, $porta, $protocolo);
        }

        if ($stmt->execute()) {
            $_SESSION['mensagem'] = "Configurações SIP salvas com sucesso!";
            header('Location: config_sip.php');
            exit;
        } else {
            $erro = "Erro ao salvar: " . $conn->error;
        }
        $stmt->close();
    } else {
        $erro = "Preencha todos os campos obrigatórios.";
    }
}

$conn->close();
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Configurações SIP</title>
<style>
body {
    font-family: Arial, sans-serif;
    margin: 30px;
    max-width: 600px;
}

input, select {
    width: 100%;
    padding: 10px;
    margin: 6px 0 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
}

button {
    padding: 10px 20px;
    background: #3498db;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

button:hover {
    background: #2980b9;
}

.alert {
    background: #f2dede;
    color: #a94442;
    padding: 10px;
    border-radius: 4px;
    margin-bottom: 15px;
}

.status-ok {
    background-color: #2ecc71;
    color: white;
}

.status-fail {
    background-color: #e74c3c;
    color: white;
}

.mensagem-flutuante {
    position: fixed;
    top: 80px;
    right: 20px;
    padding: 10px 20px;
    background: #2ecc71;
    color: white;
    border-radius: 4px;
    z-index: 2000;
}
</style>
</head>
<body>

<h2>Configurações SIP do Tenant</h2>

<?php if (!empty($erro)): ?>
<div class="alert"><?= htmlspecialchars($erro) ?></div>
<?php endif; ?>

<!-- Botão de Status SIP -->
<?php
if (isset($status_sip['registrado'])) {
    if ($status_sip['registrado']) {
        echo '<button class="status-ok">SIP CONECTADO</button>';
    } else {
        echo '<button class="status-fail">SIP DESCONECTADO</button>';
    }
} else {
    echo '<button class="status-fail">STATUS INDEFINIDO</button>';
}
?>

<form method="POST">
    <input type="hidden" name="csrf_token" value="<?= htmlspecialchars($_SESSION['csrf_token']) ?>">

    <label>Servidor SIP:</label>
    <input type="text" name="servidor" value="<?= htmlspecialchars($config['servidor'] ?? '') ?>" required>

    <label>Usuário SIP:</label>
    <input type="text" name="usuario" value="<?= htmlspecialchars($config['usuario'] ?? '') ?>" required>

    <label>Senha SIP:</label>
    <input type="password" name="senha" value="<?= htmlspecialchars($config['senha'] ?? '') ?>" required>

    <label>Porta:</label>
    <input type="number" name="porta" value="<?= htmlspecialchars($config['porta'] ?? '5060') ?>" required>

    <label>Protocolo:</label>
    <select name="protocolo">
        <option value="udp" <?= (isset($config['protocolo']) && $config['protocolo'] === 'udp') ? 'selected' : '' ?>>UDP</option>
        <option value="tcp" <?= (isset($config['protocolo']) && $config['protocolo'] === 'tcp') ? 'selected' : '' ?>>TCP</option>
        <option value="tls" <?= (isset($config['protocolo']) && $config['protocolo'] === 'tls') ? 'selected' : '' ?>>TLS</option>
    </select>

    <button type="submit">Salvar Configurações</button>
</form>

</body>
</html>
