<?php
session_start();

$server_mysql_vendas = "localhost";
$user_mysql_vendas = "financeiro";
$pass_mysql_vendas = "asder123Ww@";
$db_mysql_vendas = "financeiro";

$conn_mysql_vendas = new mysqli($server_mysql_vendas, $user_mysql_vendas, $pass_mysql_vendas, $db_mysql_vendas);
if ($conn_mysql_vendas->connect_error) {
    die("Conexão MySQL falhou: " . $conn_mysql_vendas->connect_error);
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'clear_values') {
    $sql_clear_values = "UPDATE clientes SET valor = NULL";
    if ($conn_mysql_vendas->query($sql_clear_values) === TRUE) {
        echo json_encode(['status' => 'success', 'message' => 'Valores da coluna valor apagados com sucesso.']);
    } else {
        echo json_encode(['status' => 'error', 'message' => 'Erro ao apagar os valores: ' . $conn_mysql_vendas->error]);
    }
}

// Conectando ao banco de dados MySQL
$conn_mysql_vendas = new mysqli($server_mysql_vendas, $user_mysql_vendas, $pass_mysql_vendas, $db_mysql_vendas);
if ($conn_mysql_vendas->connect_error) {
    die("Conexão MySQL falhou: " . $conn_mysql_vendas->connect_error);
}

// Consultas para obter total de vendas e número de vendas
$sql_total_vendas = "SELECT SUM(valor) as total FROM vendas";
$sql_count_vendas = "SELECT COUNT(*) as total_vendas FROM vendas";
$result_total_vendas = $conn_mysql_vendas->query($sql_total_vendas);
$result_count_vendas = $conn_mysql_vendas->query($sql_count_vendas);

$total = $result_total_vendas ? $result_total_vendas->fetch_assoc()['total'] : 0;
$total_vendas = $result_count_vendas ? $result_count_vendas->fetch_assoc()['total_vendas'] : 0;

// Conectar ao banco de dados SQLite
$db_sqlite = new SQLite3("./api/.ansdb.db");

// Consulta para obter todos os MACs com data de expiração e número de telefone
$sql_macs = "SELECT mac_address, title, numero_tel, expire_date FROM ibo";
$result_macs = $db_sqlite->query($sql_macs);

$macs = [];
while ($row = $result_macs->fetchArray(SQLITE3_ASSOC)) {
    $macs[] = $row;
}

$db_sqlite->close();
$conn_mysql_vendas->close();

// Conectar ao banco de dados SQLite
$db_sqlite = new SQLite3("./api/.ansdb.db");

// Função para enviar mensagem pelo WhatsApp para o número específico
function enviarMensagemWhatsApp() {
    $access_token = 'EAAGD8beTNXEBO9ZBMvMYKg91hW78o6ifiYB92mgPIwxjQnOo48yEKx6ChvGQeT7WiONgoQo7xGOUn3OiF7dzzlqJFc2UZBwvYyVr18IlyGySHr8JxJhPi0q6ODTBqhWspoqPUWJfegidxlLqrcTGrEGHtxChwKnArrOZAuhDJ9ojQBoFvtccAo7XFIKNcTyZChaZC7U8Ng0IBUQvZCfAWwhp8k4PUZD';
    $numero_destino = '5511954993501';
    $dados = [
        'messaging_product' => 'whatsapp',
        'recipient_type' => 'individual',
        'to' => $numero_destino,
        'type' => 'template',
        'template' => [
            'name' => 'hello_world',
            'language' => [
                'code' => 'en_US'
            ]
        ]
    ];

    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => 'https://graph.facebook.com/v21.0/493769300485920/messages',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => json_encode($dados),
        CURLOPT_HTTPHEADER => [
            "Content-Type: application/json",
            "Authorization: Bearer " . $access_token
        ],
    ]);

    $response = curl_exec($curl);
    curl_close($curl);
}

// Verificar e enviar mensagem para MACs vencidos
$expired_macs = [];
$active_macs = [];

// Se a requisição for AJAX e a função de envio foi chamada
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['send_messages'])) {
    $sql_macs_vencidos = "SELECT title, numero_tel FROM ibo WHERE expire_date < DATE('now') AND numero_tel IS NOT NULL";
    $result = $db_sqlite->query($sql_macs_vencidos);

    while ($mac = $result->fetchArray(SQLITE3_ASSOC)) {
        $cliente_nome = $mac['title'];
        $numero_destino = '55' . preg_replace('/\D/', '', $mac['numero_tel']);
        enviarMensagemWhatsApp($numero_destino, $cliente_nome);
    }
    
    echo json_encode(['status' => 'success', 'message' => 'Mensagens enviadas com sucesso.']);
    exit();
}



// Criando a conexão com o banco de dados MySQL
$conn_mysql_vendas = new mysqli($server_mysql_vendas, $user_mysql_vendas, $pass_mysql_vendas, $db_mysql_vendas);

// Verificando a conexão MySQL
if ($conn_mysql_vendas->connect_error) {
    die("Conexão MySQL falhou: " . $conn_mysql_vendas->connect_error);
}

// Consultas SQL para os dados MySQL
$sql_total_vendas = "SELECT SUM(valor) as total FROM vendas";
$sql_count_vendas = "SELECT COUNT(*) as total_vendas FROM vendas";

// Executando as consultas
$result_total_vendas = $conn_mysql_vendas->query($sql_total_vendas);
$result_count_vendas = $conn_mysql_vendas->query($sql_count_vendas);

// Inicializando as variáveis
$total = 0;
$total_vendas = 0;

// Verificando os resultados das consultas
if ($result_total_vendas && $row_total = $result_total_vendas->fetch_assoc()) {
    $total = $row_total['total'];
}

if ($result_count_vendas && $row_count = $result_count_vendas->fetch_assoc()) {
    $total_vendas = $row_count['total_vendas'];
}

// Lógica para inserir o valor da venda
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['valor_venda'])) {
    $valor_venda = $_POST['valor_venda'];

    // Verificando se o valor da venda é maior que zero
    if ($valor_venda > 0) {
        // Inserindo o valor da venda na tabela de vendas
        $sql_insert_venda = "INSERT INTO vendas (valor, data) VALUES (?, NOW())"; // 'data' é a data atual

        if ($stmt = $conn_mysql_vendas->prepare($sql_insert_venda)) {
            $stmt->bind_param("d", $valor_venda); // 'd' para decimal
            if ($stmt->execute()) {
                // Verifica e remove o último registro duplicado
                $sql_delete_last_duplicate = "
                    DELETE FROM vendas 
                    WHERE id = (
                        SELECT id FROM (SELECT id FROM vendas ORDER BY id DESC LIMIT 1) AS last_id
                    ) 
                    AND (
                        SELECT COUNT(*) FROM vendas WHERE valor = ? 
                    ) > 1
                ";

                if ($delete_stmt = $conn_mysql_vendas->prepare($sql_delete_last_duplicate)) {
                    $delete_stmt->bind_param("d", $valor_venda);
                    $delete_stmt->execute();
                    $delete_stmt->close();
                }

                echo "<script>alert('Venda inserida com sucesso!');</script>";
            } else {
                echo "<script>alert('Erro ao inserir a venda.');</script>";
            }
            $stmt->close();
        } else {
            echo "<script>alert('Erro na preparação da consulta de inserção.');</script>";
        }
    } else {
        echo "<script>alert('O valor da venda deve ser maior que zero.');</script>";
    }
}

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['mac_address_m3u']) && isset($_POST['nova_url_m3u'])) {
    $mac_address_m3u = strtoupper(trim($_POST['mac_address_m3u']));
    $nova_url_m3u = trim($_POST['nova_url_m3u']);

    $db_sqlite = new SQLite3("./api/.ansdb.db");

    $stmt = $db_sqlite->prepare("UPDATE ibo SET url = :url WHERE mac_address = :mac_address");
    $stmt->bindValue(':url', $nova_url_m3u, SQLITE3_TEXT);
    $stmt->bindValue(':mac_address', $mac_address_m3u, SQLITE3_TEXT);

    if ($stmt->execute()) {
        echo "<script>alert('URL da lista M3U atualizada com sucesso!');</script>";
    } else {
        echo "<script>alert('Erro ao atualizar a URL da lista M3U.');</script>";
    }

    $db_sqlite->close();
}

// Lógica para alterar a data de expiração (expire_date)
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['mac_address']) && isset($_POST['expire_date'])) {
    $mac_address = strtoupper(trim($_POST['mac_address']));
    $expire_date = $_POST['expire_date'];

    // Conectar ao banco de dados SQLite novamente para realizar a atualização
    $db_sqlite = new SQLite3("./api/.ansdb.db");

    // Atualizar o expire_date para o mac_address fornecido
    $stmt = $db_sqlite->prepare("UPDATE ibo SET expire_date = :expire_date WHERE mac_address = :mac_address");
    $stmt->bindValue(':expire_date', $expire_date, SQLITE3_TEXT);
    $stmt->bindValue(':mac_address', $mac_address, SQLITE3_TEXT);

    $result = $stmt->execute();

    // Fechar o banco de dados
    $db_sqlite->close();

    if ($result) {
        echo "<script>alert('Data de expiração atualizada com sucesso!');</script>";
    } else {
        echo "<script>alert('Falha ao atualizar a data de expiração.');</script>";
    }
}

// Lógica para alterar o título
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['mac_address_title']) && isset($_POST['title'])) {
    $mac_address_title = strtoupper(trim($_POST['mac_address_title']));
    $title = $_POST['title'];

    // Conectar ao banco de dados SQLite para atualizar o title
    $db_sqlite = new SQLite3("./api/.ansdb.db");

    // Atualizar o title para o mac_address fornecido
    $stmt = $db_sqlite->prepare("UPDATE ibo SET title = :title WHERE mac_address = :mac_address");
    $stmt->bindValue(':title', $title, SQLITE3_TEXT);
    $stmt->bindValue(':mac_address', $mac_address_title, SQLITE3_TEXT);

    // Executa a atualização
    $result = $stmt->execute();

    // Fechar o banco de dados
    $db_sqlite->close();

    // Verificar se a atualização foi bem-sucedida
    if ($result) {
        echo "<script>alert('Título atualizado com sucesso!');</script>";
    } else {
        echo "<script>alert('Falha ao atualizar o título.');</script>";
    }
}

// Lógica para alterar o dns
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['mac_address_dns']) && isset($_POST['dns'])) {
    $mac_address_dns = strtoupper(trim($_POST['mac_address_dns']));
    $dns = $_POST['dns'];

    // Conectar ao banco de dados SQLite para atualizar o dns
    $db_sqlite = new SQLite3("./api/.ansdb.db");

    // Atualizar o dns para o mac_address fornecido
    $stmt = $db_sqlite->prepare("UPDATE ibo SET dns = :dns WHERE mac_address = :mac_address");
    $stmt->bindValue(':dns', $dns, SQLITE3_TEXT);
    $stmt->bindValue(':mac_address', $mac_address_dns, SQLITE3_TEXT);

    // Executa a atualização
    $result = $stmt->execute();

    // Fechar o banco de dados
    $db_sqlite->close();

    // Verificar se a atualização foi bem-sucedida
    if ($result) {
        echo "<script>alert('DNS atualizado com sucesso!');</script>";
    } else {
        echo "<script>alert('Falha ao atualizar o DNS.');</script>";
    }
}
// Fechar a conexão com o banco de dados
$conn_mysql_vendas->close();
?>

<?php
// Conectar ao banco de dados SQLite
$db_sqlite = new SQLite3("./api/.ansdb.db");

// Consulta para contar o número de clientes na tabela ibo
$sql_count_clients = "SELECT COUNT(*) as total_clients FROM ibo";
$result_count_clients = $db_sqlite->query($sql_count_clients);

// Inicializando a variável para o número de clientes
$total_clients = 0;

// Verificando o resultado da consulta
if ($result_count_clients && $row_count_clients = $result_count_clients->fetchArray(SQLITE3_ASSOC)) {
    $total_clients = $row_count_clients['total_clients'];
}

// Fechar a conexão com o banco de dados
$db_sqlite->close();


?>
<?php
ini_set("display_errors", 1);
ini_set("display_startup_errors", 1);
error_reporting(E_ALL);

// Conexão com o banco de dados MySQL
$server_mysql_vendas = "localhost";
$user_mysql_vendas   = "financeiro";
$pass_mysql_vendas   = "asder123Ww@";
$db_mysql_vendas     = "financeiro";

// Criando a conexão com o banco de dados MySQL
$conn_mysql_vendas = new mysqli($server_mysql_vendas, $user_mysql_vendas, $pass_mysql_vendas, $db_mysql_vendas);

// Verificando a conexão MySQL
if ($conn_mysql_vendas->connect_error) {
    die("Conexão MySQL falhou: " . $conn_mysql_vendas->connect_error);
}

// Consulta para somar as vendas do último mês
$sql_total_vendas_ultimo_mes = "SELECT SUM(valor) as total FROM vendas WHERE data >= CURDATE() - INTERVAL 1 MONTH";

// Executando a consulta
$result_total_vendas_ultimo_mes = $conn_mysql_vendas->query($sql_total_vendas_ultimo_mes);

// Inicializando a variável para o total
$total_ultimo_mes = 0;

// Verificando o resultado e atribuindo o valor total
if ($result_total_vendas_ultimo_mes && $row_total = $result_total_vendas_ultimo_mes->fetch_assoc()) {
    $total_ultimo_mes = $row_total['total'];
}

// Fechar a conexão com o banco de dados
$conn_mysql_vendas->close();
?>
<?php
// Caminho do banco de dados SQLite
$db_sqlite_path = "./api/.ansdb.db";

// Conectando ao banco de dados SQLite
$db_sqlite = new SQLite3($db_sqlite_path);

// Consulta para obter os MAC Addresses da tabela 'ibo'
$sql_mac_addresses = "SELECT mac_address FROM ibo";
$result_mac_addresses = $db_sqlite->query($sql_mac_addresses);

// Criando um array para armazenar os MAC Addresses
$mac_addresses = [];
while ($row = $result_mac_addresses->fetchArray(SQLITE3_ASSOC)) {
    $mac_addresses[] = $row['mac_address'];
}


// Adicionando a lógica para atualizar todos os registros de DNS
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['trocar_todos_dns'])) {
    // DNS de exemplo
    $dns_links = [
        'http://opbx.top/get.php?username=apolotv&password=891218269&type=m3u_plus&output=mpegts', 
        'http://opbx.top/get.php?username=lucianotvs&password=111723535&type=m3u_plus&output=mpegts',
        'http://opbx.top/get.php?username=projetortv&password=233996106&type=m3u_plus&output=mpegts',
        'http://opbx.top/get.php?username=adilsontv&password=954891461&type=m3u_plus&output=mpegts',
        'http://opbx.top/get.php?username=thefulltvbox&password=358128991&type=m3u_plus&output=mpegts'
    ];

    // Conectando ao banco de dados SQLite
    $db_sqlite = new SQLite3("./api/.ansdb.db");

    // Recuperando todos os registros de mac_address
    $sql_mac_addresses = "SELECT mac_address FROM ibo";
    $result_mac_addresses = $db_sqlite->query($sql_mac_addresses);

    // Percorrendo todos os registros de MAC Address e atualizando o DNS
    while ($row = $result_mac_addresses->fetchArray(SQLITE3_ASSOC)) {
        $mac_address = strtoupper($row['mac_address']);

        // Atualizando DNS de cada registro (usando um DNS aleatório da lista)
        $new_dns = $dns_links[array_rand($dns_links)];  // Seleciona um DNS aleatório

        // Atualizando o banco de dados com o novo DNS
        $stmt = $db_sqlite->prepare("UPDATE ibo SET dns = :dns WHERE mac_address = :mac_address");
        $stmt->bindValue(':dns', $new_dns, SQLITE3_TEXT);
        $stmt->bindValue(':mac_address', $mac_address, SQLITE3_TEXT);

        $stmt->execute();
    }

    // Fechar o banco de dados
    $db_sqlite->close();

    // Mensagem de sucesso
    echo "<script>alert('Todos os DNS foram atualizados com sucesso!');</script>";
}
// Lógica para consultar os clientes e contas inativas
// Conectar ao banco de dados SQLite
$db_sqlite = new SQLite3("./api/.ansdb.db");

// Consulta para contar o número de clientes totais
$sql_count_clientes = "SELECT COUNT(*) as total_clientes FROM ibo";
$result_count_clientes = $db_sqlite->query($sql_count_clientes);
$row_count_clientes = $result_count_clientes->fetchArray(SQLITE3_ASSOC);
$total_clientes = $row_count_clientes['total_clientes'];

// Consulta para contar o número de contas inativas (com expire_date inferior a data atual)
$sql_count_inativas = "SELECT COUNT(*) as total_inativas FROM ibo WHERE expire_date < DATE('now')";
$result_count_inativas = $db_sqlite->query($sql_count_inativas);
$row_count_inativas = $result_count_inativas->fetchArray(SQLITE3_ASSOC);
$total_inativas = $row_count_inativas['total_inativas'];

// Fechar a conexão com o banco de dados
$db_sqlite->close();
?>


<?php


// Verificar se o usuário está autenticado e é um administrador
if (!isset($_SESSION['id']) || !$_SESSION['admin']) {
    header("Location: login.php");
    exit();
}



ini_set("display_errors", 1);
ini_set("display_startup_errors", 1);
error_reporting(E_ALL);

// Conectar ao banco de dados SQLite
$db = new SQLite3("./api/.ansdb.db");

// Verificar se a coluna numero_tel já existe
$result = $db->query("PRAGMA table_info(ibo)");
$coluna_existe = false;
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
    if ($row['name'] == 'numero_tel') {
        $coluna_existe = true;
        break;
    }
}

// Adicionar a coluna numero_tel somente se não existir
if (!$coluna_existe) {
    $db->exec("ALTER TABLE ibo ADD COLUMN numero_tel VARCHAR(15)");
}

// Lógica para atualizar o número de telefone
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['save_phone'])) {
    $cliente_id = $_POST['cliente_id'];
    $numero_tel = $_POST['numero_tel'];

    // Atualizar o número de telefone na tabela 'ibo'
    $stmt = $db->prepare("UPDATE ibo SET numero_tel = :numero_tel WHERE id = :id");
    $stmt->bindValue(':numero_tel', $numero_tel, SQLITE3_TEXT);
    $stmt->bindValue(':id', $cliente_id, SQLITE3_INTEGER);

    if ($stmt->execute()) {
        echo "<script>alert('Número de telefone salvo com sucesso!');</script>";
    } else {
        echo "<script>alert('Erro ao salvar o número de telefone.');</script>";
    }
}



// Buscar todos os mac_addresses para o select
$res = $db->query("SELECT id, mac_address, title, numero_tel FROM ibo");
$clientes = [];
while ($row = $res->fetchArray()) {
    $clientes[] = $row;
}

// Conexão ao banco de dados SQLite
$db_sqlite = new SQLite3("./api/.ansdb.db");

// Consulta para obter os 5 primeiros MACs com `expire_date` vencida e `numero_tel`
$sql_expired_macs = "SELECT mac_address, title, numero_tel FROM ibo WHERE expire_date ";

$result_expired_macs = $db_sqlite->query($sql_expired_macs);

// Verifica se existem registros com expiração vencida
$expired_macs = [];
while ($row = $result_expired_macs->fetchArray(SQLITE3_ASSOC)) {
    $expired_macs[] = $row;
}


// Ordenar MACs vencidos primeiro
$expired_macs = [];
$active_macs = [];

foreach ($macs as $mac) {
    // Verifica se o MAC está vencido
    $isExpired = isset($mac['expire_date']) && strtotime($mac['expire_date']) < time();
    if ($isExpired) {
        $expired_macs[] = $mac;
    } else {
        $active_macs[] = $mac;
    }
}

// Combine listas com os vencidos primeiro
$sorted_macs = array_merge($expired_macs, $active_macs);

$db_sqlite->close();


$codigo_downloader = "557898";


?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PAINEL TV</title>
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
  <style>
   /* ------------------- BASE ------------------- */
body {
    font-family: 'Poppins', sans-serif;
    background-color: #121212;
    color: #fff;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    box-sizing: border-box;
    padding-top: 60px; /* espaço para o menu fixo */
}

/* ------------------- HAMBURGUER MENU ------------------- */
#hamburguer {
    position: fixed;
    top: 15px;
    left: 20px;
    font-size: 28px;
    color: white;
    cursor: pointer;
    z-index: 1100;
}

/* ------------------- TOP BAR ------------------- */
#topBar {
    width: 100%;
    height: 50px;
    background-color: #1c1c1c;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    color: white;
    font-size: 18px;
}

#topBar .menu-icon {
    cursor: pointer;
    font-size: 30px;
    transition: 0.3s;
}

#topBar .menu-icon:hover {
    background-color: #333;
    border-radius: 5px;
}

/* ------------------- SIDEBAR ------------------- */
#sidebar {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    background-color: #1c1c1c;
    overflow-x: hidden;
    transition: 0.3s;
    padding-top: 60px;
}

.sidebar-link {
    padding: 14px 24px;
    text-decoration: none;
    font-size: 18px;
    color: white;
    display: block;
    transition: 0.3s;
    border-bottom: 1px solid #333;
}

.sidebar-link:hover {
    background-color: #333;
}

/* ------------------- FORMS ------------------- */
.form-container {
    
    background-color: #1c1c1c;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
    width: 90%;
    max-width: 500px;
    margin: 10px auto;
}

.form-container input,
.form-container select,
.form-container button {
    width: 90%;
    padding: 12px;
    margin: 10px 0;
    border: 1px solid #333;
    border-radius: 5px;
    background-color: #2a2a2a;
    color: #fff;
}

.form-container button {
    background-color: #007bff;
    color: white;
    cursor: pointer;
    border: none;
    transition: background-color 0.3s ease;
}

.form-container button:hover {
    background-color: #0056b3;
}

/* ------------------- CARDS / CONTAINERS ------------------- */
.container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
    width: 95%;
    max-width: 1000px;
    padding: 20px;
    box-sizing: border-box;
    margin: 0 auto;
}

.card {
    background-color: #1c1c1c;
    padding: 20px;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
    text-align: center;
    font-size: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 90%;
    margin: 0 auto;
}

.card h2 {
    color: #fff;
    font-size: 1.4rem;
    margin-bottom: 15px;
}

.total-value {
    font-size: 2rem;
    color: #4CAF50;
    font-weight: 600;
    margin-top: 10px;
}

.card .total-clientes,
.card .total-inativas {
    font-size: 1.2rem;
    color: #fff;
    margin-top: 10px;
}

/* ------------------- BOTÕES GERAIS ------------------- */
.button-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
}

.button {
    background-color: #007bff;
    color: white;
    padding: 10px 20px;
    margin-top: 20px;
    border: none;
    cursor: pointer;
    border-radius: 5px;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

.button:hover {
    background-color: #0056b3;
}

#statusMessage {
    margin-top: 15px;
    font-size: 0.9rem;
    color: #ccc;
}

/* ------------------- RODAPÉ ------------------- */
.footer {
    position: fixed;
    bottom: 0;
    width: 100%;
    background-color: #1c1c1c;
    text-align: center;
    padding: 10px 0;
    font-size: 0.9rem;
    color: #999;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.3);
}

/* ------------------- SCROLL / LISTA ------------------- */
.scrollable-list {
    max-height: 300px;
    overflow-y: auto;
}

.form-container ul {
    list-style: none;
    padding: 0;
}

.form-container li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid #444;
}

.form-container li:last-child {
    border-bottom: none;
}

/* ------------------- ICONES ------------------- */
.client-info {
    font-size: 1.1rem;
    flex-grow: 1;
}

.icon-container {
    display: flex;
    gap: 10px;
}

.icon-container a img {
    width: 50px;
    height: 50px;
    transition: transform 0.3s ease;
}

.icon-container a:hover img {
    transform: scale(1.1);
}

.whatsapp-link img:hover {
    transform: scale(1.1);
    box-shadow: 0px 4px 10px rgba(37, 211, 102, 0.5);
    animation: pulse 1s infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* ------------------- MODAL ------------------- */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.7);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.modal {
    background-color: #1c1c1c;
    padding: 20px;
    border-radius: 10px;
    width: 90%;
    max-width: 400px;
    color: white;
    text-align: center;
    box-shadow: 0 0 15px rgba(0,0,0,0.5);
}

.modal ul {
    padding: 0;
    list-style: none;
    margin: 10px 0;
}

.modal li {
    padding: 8px 0;
    border-bottom: 1px solid #333;
}

.modal button {
    margin: 10px;
    padding: 10px 20px;
    border: none;
    cursor: pointer;
    border-radius: 5px;
}

.btn-confirm { background-color: #28a745; color: white; }
.btn-cancel { background-color: #dc3545; color: white; }

/* ------------------- AUTOCOMPLETE CLIENTES ------------------- */
#listaClientes {
    list-style: none;
    margin-top: 10px;
    border: 1px solid #444;
    max-height: 200px;
    overflow-y: auto;
    background: #1c1c1c;
    color: white;
    padding: 0;
    border-radius: 5px;
}

#listaClientes li {
    padding: 10px;
    cursor: pointer;
    border-bottom: 1px solid #333;
}

#listaClientes li:hover {
    background-color: #333;
}

/* ------------------- RESPONSIVO ------------------- */
@media (max-width: 768px) {
    body {
        font-size: 14px;
        padding-top: 50px;
    }

    .container {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 10px;
    }

    .form-container {
        padding: 15px;
        max-width: 95%;
    }

    .form-container input, .form-container select, .form-container button {
        padding: 10px;
    }
}

@media (min-width: 1024px) {
    .container {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }

    .card {
        width: 100%;
    }

    .form-container {
        max-width: 600px;
    }

    .total-value {
        font-size: 2.5rem;
    }
}

html {
    scroll-behavior: smooth;
}


</style>

</head>

<div class="form-container">
     <!-- TOPO COM MENU HAMBÚRGUER -->
<header style="background-color: #1e1e1e; padding: 10px; display: flex; align-items: center;">
  <span id="hamburguer" style="font-size: 26px; cursor: pointer; color: white;">&#9776;</span>
  <h1 style="margin-left: 10px; color: white; font-size: 20px;">BRIZA IPTV</h1>
</header>

<!-- SIDEBAR -->
<div id="sidebar" style="height: 100%; width: 0; position: fixed; z-index: 1000; top: 0; left: 0; background-color: #111; overflow-x: hidden; transition: 0.3s; padding-top: 60px;">
  <a href="#form1" class="sidebar-link">📅 Expiração</a>
  <a href="#form2" class="sidebar-link">📝 Alterar Nome</a>
  <a href="#form3" class="sidebar-link">📱 Alterar WhatsApp</a>
  <a href="#form5" class="sidebar-link">🔗 Alterar M3U</a>
  <a href="https://briza.thefullnet.com.br/tv.apk" class="sidebar-link">🔗 Baixar App</a>
   <a href="https://briza.thefullnet.com.br/all_users.php" class="sidebar-link">🌐 Configuração</a>
</div>

        <div class="form-container">
            <div style="text-align: center;">
    <img src="https://briza.thefullnet.com.br/img_custom/logo/686ef1c3c99cd.png" 
         alt="Descrição da imagem" 
         style="width: 150px; height: 150px; vertical-align: middle;">
</div>


<body>
      
 <div style="background: #1e1e1e; color: white; padding: 20px; border-radius: 12px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); max-width: 400px; margin: auto; text-align: center; font-family: Arial, sans-serif;">
    <h3 style="margin-bottom: 10px;">🔽 Código do Downloader</h3>
    <p style="font-size: 16px;">Esse é o código do downloader do seu app:</p>
    <a href="http://aftv.news/8246391" target="_blank" style="display: inline-block; margin-top: 10px; font-size: 26px; font-weight: bold; color: #00ffae; text-decoration: none;">
        8246391
    </a>
</div>

       <div class="form-container">
    <h2>Controle de Clientes</h2>
    <div class="total-clientes"><?php echo number_format($total_clientes, 0, ',', '.'); ?> Clientes Total </div>
    
    <div class="total-ativos">
        <?php 
            $total_ativos = $total_clientes - $total_inativas;
            echo number_format($total_ativos, 0, ',', '.'); 
        ?> Clientes Ativos
        <div class="total-inativas"><?php echo number_format($total_inativas, 0, ',', '.'); ?> Clientes Inativos</div>
    </div>
  


</div>



    <script>
  const sidebar = document.getElementById("sidebar");
  const hamburger = document.getElementById("hamburguer");

  hamburger.addEventListener("click", function () {
    sidebar.style.width = sidebar.style.width === "250px" ? "0" : "250px";
  });

  // Fecha o menu ao clicar em um item
  document.querySelectorAll('.sidebar-link').forEach(link => {
    link.addEventListener('click', () => {
      sidebar.style.width = '0';
    });
  });
</script>

  

<!--div class="container">
        <h2>Enviar Mensagens para MACs Vencidos</h2>
        <button id="sendMessagesButton" class="button">Enviar Mensagens</button>
        <div id="statusMessage"></div>
    <!--/div>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <!--script>
        document.getElementById('sendMessagesButton').addEventListener('click', function() {
            document.getElementById('statusMessage').innerText = 'Enviando mensagens...';

            fetch('', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                },
                body: 'send_messages=true'
            })
            .then(response => response.json())
            .then(data => {
                document.getElementById('statusMessage').innerText = data.message;
            })
            .catch(error => {
                document.getElementById('statusMessage').innerText = 'Erro ao enviar mensagens.';
                console.error('Erro:', error);
            });
        });
    <!--/script>

<style>
    /* Ajustes de estilo para o card de MACs */
    .scrollable-list {
        max-height: 300px;
        overflow-y: auto;
        width: 100%;
    }

    .card ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .card ul li {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 0;
        border-bottom: 1px solid #ddd;
    }

    .card ul li:last-child {
        border-bottom: none;
    }

    .client-info {
        font-size: 1.1rem;
        flex-grow: 1;
    }

    .icon-container {
        display: flex;
        gap: 10px;
    }

    .icon-container img {
        width: 40px;
        height: 40px;
    }
</style-->
<div class="form-container" id="form1">
  <h2>🔧 Alterar Nome do Cliente</h2>

  <form method="POST">
    <label for="search_nome">🔍 Pesquisar Nome ou MAC</label>
    <input type="text" id="search_nome" placeholder="Digite nome ou MAC..." onkeyup="filtrarClientesNome()">

    <ul id="listaClientesNome" class="scrollable-list">
      <?php foreach ($clientes as $cliente): ?>
        <li onclick="selecionarClienteNome('<?php echo $cliente['mac_address']; ?>')">
          <span class="client-info"><?php echo $cliente['mac_address']; ?> - <?php echo $cliente['title']; ?></span>
        </li>
      <?php endforeach; ?>
    </ul>

    <input type="hidden" name="mac_address_title" id="mac_address_title" required>

    <label for="title">✏️ Novo Nome do Cliente</label>
    <input type="text" id="title" name="title" placeholder="Ex: João da Silva" required>

    <button type="submit">💾 Alterar Nome</button>
  </form>
</div>


<div class="form-container" id="form2">
   <h2>Alterar Data de Expiração</h2>
   <div class="form-container">
    <h2>Alterar Expiração</h2>
    <form method="POST">
        <label for="search">Pesquisar Nome ou MAC</label>
        <input type="text" id="search" placeholder="Digite nome ou MAC..." onkeyup="filtrarClientes()">

        <ul id="listaClientes" class="scrollable-list" style="max-height: 200px; background: #1c1c1c; color: #fff; padding: 0 10px; border-radius: 5px;">
            <?php foreach ($clientes as $cliente): ?>
                <li onclick="selecionarCliente('<?php echo $cliente['mac_address']; ?>')">
                    <?php echo $cliente['mac_address'] . ' - ' . $cliente['title']; ?>
                </li>
            <?php endforeach; ?>
        </ul>

        <input type="hidden" name="mac_address" id="mac_address" required>

        <label for="expire_date">Nova Data de Expiração</label>
        <input type="date" id="expire_date" name="expire_date" required>

        <button type="submit">Alterar</button>
    </form>
</div>
</div>


<div class="form-container" id="form5">
  <h2>Trocar Lista M3U</h2>
  <div class="form-container">
    <h2>Trocar Lista M3U do Cliente</h2>
    <form method="POST">
        <label for="search_cliente_m3u">Pesquisar Nome ou MAC</label>
        <input type="text" id="search_cliente_m3u" placeholder="Digite nome ou MAC..." onkeyup="filtrarClientesM3U()">

        <ul id="listaClientesM3U" class="scrollable-list" style="max-height: 200px; background: #1c1c1c; color: #fff; padding: 0 10px; border-radius: 5px;">
            <?php foreach ($clientes as $cliente): ?>
                <li onclick="selecionarClienteM3U('<?php echo $cliente['mac_address']; ?>', '<?php echo htmlspecialchars($cliente['title'] . ' - ' . $cliente['mac_address']); ?>')">
                    <?php echo htmlspecialchars($cliente['title']) . ' - ' . htmlspecialchars($cliente['mac_address']); ?>
                </li>
            <?php endforeach; ?>
        </ul>

        <input type="hidden" name="mac_address_m3u" id="mac_address_m3u" required>

        <label for="nova_url_m3u">Nova URL da Lista M3U</label>
        <input type="url" id="nova_url_m3u" name="nova_url_m3u" placeholder="http://exemplo.com/lista.m3u" required>

        <button type="submit" name="trocar_url_m3u">Atualizar Lista</button>
    </form>
</div>
</div>

<div class="form-container" id="form3">
  <h2>Adicionar WhatsApp</h2>
  <div class="form-container">
    <h2>Adicionar WhatsApp do Cliente</h2>
    <form method="POST">
        <label for="search_cliente">Pesquisar Nome ou MAC</label>
        <input type="text" id="search_cliente" placeholder="Digite nome ou MAC..." onkeyup="filtrarClientesWhatsapp()">

        <ul id="listaClientesWhatsapp" class="scrollable-list" style="max-height: 200px; background: #1c1c1c; color: #fff; padding: 0 10px; border-radius: 5px;">
            <?php foreach ($clientes as $cliente): ?>
                <li onclick="selecionarClienteWhatsapp('<?php echo $cliente['id']; ?>', '<?php echo htmlspecialchars($cliente['title'] . ' - ' . $cliente['mac_address']); ?>')">
                    <?php echo htmlspecialchars($cliente['title']) . ' - ' . htmlspecialchars($cliente['mac_address']); ?>
                </li>
            <?php endforeach; ?>
        </ul>

        <input type="hidden" name="cliente_id" id="cliente_id" required>

        <label for="numero_tel">Novo Número de Telefone</label>
        <input type="text" id="numero_tel" name="numero_tel" pattern="\d{10,15}" placeholder="Digite o número" required>

        <button type="submit" name="save_phone">Salvar</button>
    </form>
</div>
</div>


<script>
function filtrarClientes() {
    const input = document.getElementById('search');
    const filtro = input.value.toLowerCase();
    const lista = document.getElementById('listaClientes');
    const itens = lista.getElementsByTagName('li');

    for (let i = 0; i < itens.length; i++) {
        const texto = itens[i].textContent || itens[i].innerText;
        if (texto.toLowerCase().indexOf(filtro) > -1) {
            itens[i].style.display = '';
        } else {
            itens[i].style.display = 'none';
        }
    }
}

function selecionarCliente(mac) {
    document.getElementById('mac_address').value = mac;
    document.getElementById('search').value = mac;
    document.getElementById('listaClientes').style.display = 'none';
}
</script>



<script>
function filtrarClientesNome() {
    const input = document.getElementById('search_nome');
    const filtro = input.value.toLowerCase();
    const lista = document.getElementById('listaClientesNome');
    const itens = lista.getElementsByTagName('li');

    for (let i = 0; i < itens.length; i++) {
        const texto = itens[i].textContent || itens[i].innerText;
        itens[i].style.display = texto.toLowerCase().includes(filtro) ? '' : 'none';
    }
}

function selecionarClienteNome(mac) {
    document.getElementById('mac_address_title').value = mac;
    document.getElementById('search_nome').value = mac;
    document.getElementById('listaClientesNome').style.display = 'none';
}
</script>

<script>
function filtrarClientesM3U() {
    const input = document.getElementById('search_cliente_m3u');
    const filtro = input.value.toLowerCase();
    const lista = document.getElementById('listaClientesM3U');
    const itens = lista.getElementsByTagName('li');

    for (let i = 0; i < itens.length; i++) {
        const texto = itens[i].textContent || itens[i].innerText;
        itens[i].style.display = texto.toLowerCase().includes(filtro) ? '' : 'none';
    }
}

function selecionarClienteM3U(mac, texto) {
    document.getElementById('mac_address_m3u').value = mac;
    document.getElementById('search_cliente_m3u').value = texto;
    document.getElementById('listaClientesM3U').style.display = 'none';
}
</script>

   <!-- Botão para abrir o modal -->
<div class="form-container">
    <h2>Telefones Salvos</h2>
    <button class="button" onclick="abrirModalTelefones()">Ver Telefones Salvos</button>
</div>

<!-- Modal de Telefones -->
<div id="modalTelefones" class="modal-overlay" onclick="fecharModalTelefones(event)">
    <div class="modal">
        <h2>Lista de Telefones</h2>
        <ul style="text-align: left;">
            <?php foreach ($clientes as $cliente): ?>
                <?php if (!empty($cliente['numero_tel'])): ?>
                    <li><?php echo htmlspecialchars($cliente['title']) . ": " . htmlspecialchars($cliente['numero_tel']); ?></li>
                <?php endif; ?>
            <?php endforeach; ?>
        </ul>
        <button class="btn-cancel" onclick="fecharModalTelefones()">Fechar</button>
    </div>
</div>

<script>
function filtrarClientesWhatsapp() {
    const input = document.getElementById('search_cliente');
    const filtro = input.value.toLowerCase();
    const lista = document.getElementById('listaClientesWhatsapp');
    const itens = lista.getElementsByTagName('li');

    for (let i = 0; i < itens.length; i++) {
        const texto = itens[i].textContent || itens[i].innerText;
        itens[i].style.display = texto.toLowerCase().includes(filtro) ? '' : 'none';
    }
}

function selecionarClienteWhatsapp(clienteId, displayText) {
    document.getElementById('cliente_id').value = clienteId;
    document.getElementById('search_cliente').value = displayText;
    document.getElementById('listaClientesWhatsapp').style.display = 'none';
}
</script>

<script>
function abrirModalTelefones() {
    document.getElementById('modalTelefones').style.display = 'flex';
}

function fecharModalTelefones(event) {
    const modal = document.getElementById('modalTelefones');
    if (event.target === modal || event.target.classList.contains('btn-cancel')) {
        modal.style.display = 'none';
    }
}
</script>

    <h2 style="text-align: center;">Adicionar WhatsApp do Cliente</h2>
<p style="text-align: center; font-size: 16px; line-height: 1.6;">
    Temos um chatbot de WhatsApp que facilita a gestão do seu serviço! Ele envia mensagens no dia do vencimento, envia a fatura diretamente no WhatsApp do cliente e, após o pagamento, a conta é ativada automaticamente. 😊
</p>


</div>

   
   <!-- Modal para a escolha de DNS -->
    <!--div class="modal-overlay" id="dnsModal">
        <div class="modal">
            <p>Escolha a opção de DNS:</p>
            <button class="btn-confirm" onclick="selectDNSOption('Opção 1')">Alterar todos DNS</button>
            <button class="btn-confirm" onclick="selectDNSOption('Opção 2')">Alterar Apenas 1 DNS</button>
            <br><br>
            <button class="btn-cancel" onclick="closeModal()">Cancelar</button>
        </div>
    </div>

    <!-- Botão para abrir o modal de DNS -->
    <!--div class="form-container">
        <h2>Alterar DNS</h2>
        <button onclick="openDNSModal()">Atualizar DNS</button>
    </div>

    <script>
        function openDNSModal() {
            document.getElementById("dnsModal").style.display = "flex";
        }

        function closeModal() {
            document.getElementById("dnsModal").style.display = "none";
        }

        function selectDNSOption(option) {
            // Fechar o modal
            closeModal();

            // Exibir confirmação da escolha
            if (confirm(`Você escolheu ${option}. Deseja continuar?`)) {
                // Redirecionar para um link com base na opção escolhida
                const link = option === 'Opção 1'
                    ? 'https://link-opcao1.com'
                    : 'http://lcan.thefullnet.com.br/api/m.php';
                
                window.location.href = link;
            }
        }
    </script!-->

</div>


    <div class="footer">
        
      
    
    </div>
</body>
<!-- Script para chamada AJAX -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function() {
        $('#updateButton').click(function() {
            // Exibir mensagem de carregamento
            $('#statusMessage').text('Atualizando...').css('color', 'blue');

            // Enviar requisição AJAX para o PHP para executar a lógica
            $.ajax({
                url: 'atualizar_banco.php',  // Nome do arquivo PHP que vai executar a lógica
                type: 'POST',
                success: function(response) {
                    // Quando o PHP terminar a execução, exibe o status
                    $('#statusMessage').text('Banco de dados atualizado com sucesso!').css('color', 'green');
                },
                error: function() {
                    $('#statusMessage').text('Ocorreu um erro ao atualizar. Tente novamente.').css('color', 'red');
                }
            });
        });
    });
</script>
<script>
    function confirmRenewal(macAddress) {
        if (confirm("Deseja renovar o MAC " + macAddress + " por mais 1 mês?")) {
            $.ajax({
                url: 'renovar_mac.php',  // Arquivo PHP que fará a renovação
                type: 'POST',
                data: { mac_address: macAddress },
                success: function(response) {
                    alert(response.message);
                    location.reload(); // Atualiza a página para refletir a mudança
                },
                error: function() {
                    alert("Erro ao renovar o MAC.");
                }
            });
        }
    }
</script>
<script>
document.getElementById('updateDNSButton').addEventListener('click', function() {
    fetch('updatedns.php', { method: 'POST' })
        .then(response => response.json())
        .then(data => {
            document.getElementById('dnsMessage').textContent = data.message;
        })
        .catch(error => {
            document.getElementById('dnsMessage').textContent = 'Erro ao conectar ao servidor.';
            console.error('Erro:', error);
        });
});
</script>


</html>