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

$pdo = getConexaoAtiva(); // Banco Principal (Xtream ou XUI)
$pdo_int = getConexaoInterna(); // Banco Local (Garante configs e saldos)

// FORÇA O BANCO A FALAR EM UTF8 PARA ACABAR COM CARACTERES ESTRANHOS
$pdo->exec("SET NAMES utf8mb4");
$pdo_int->exec("SET NAMES utf8mb4");

// ====================================================================
// INTELIGÊNCIA ARTIFICIAL: DETECTA SE É XUI ONE OU XTREAM UI
// ====================================================================
$modo_ativo = 'interno';
try {
    $modo_ativo = $pdo_int->query("SELECT modo_ativo FROM configuracoes LIMIT 1")->fetchColumn() ?: 'interno';
} catch (Exception $e) {}

// NO XUI ONE OS REVENDEDORES FICAM NA TABELA users, NO XTREAM NA reg_users
$tabela_revendedores = ($modo_ativo === 'xui') ? 'users' : 'reg_users';

// Redireciona se não estiver logado
if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit; }

$role = $_SESSION['user_role'] ?? 'reseller'; 
$nome_usuario = $_SESSION['username'] ?? 'Usuário';
$user_id_logado = $_SESSION['user_id'];
$mensagem = "";

// --- INÍCIO: BUSCA DE PERSONALIZAÇÃO DINÂMICA ---
$nome_painel = 'TOP IPTV';
$logo_url = '';
$cor_primaria = '#007bff';

try {
    $tabela_existe = $pdo_int->query("SHOW TABLES LIKE 'painel_config'")->rowCount() > 0;
    if ($tabela_existe) {
        $config_painel = $pdo_int->query("SELECT * FROM painel_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
        if ($config_painel) {
            $nome_painel = !empty($config_painel['nome_painel']) ? $config_painel['nome_painel'] : $nome_painel;
            $logo_url = !empty($config_painel['logo_url']) ? $config_painel['logo_url'] : $logo_url;
            $cor_primaria = !empty($config_painel['cor_primaria']) ? $config_painel['cor_primaria'] : $cor_primaria;
        }
    }
} catch (Exception $e) {}

// =========================================================================
// AUTO-CORREÇÃO: GARANTE QUE AS COLUNAS WHATSAPP, EMAIL E AVATAR EXISTAM
// =========================================================================
try {
    $check_zap = $pdo->query("SHOW COLUMNS FROM `$tabela_revendedores` LIKE 'whatsapp'");
    if (!$check_zap->fetch()) { $pdo->exec("ALTER TABLE `$tabela_revendedores` ADD COLUMN `whatsapp` VARCHAR(50) DEFAULT ''"); }
    
    $check_email = $pdo->query("SHOW COLUMNS FROM `$tabela_revendedores` LIKE 'email'");
    if (!$check_email->fetch()) { $pdo->exec("ALTER TABLE `$tabela_revendedores` ADD COLUMN `email` VARCHAR(100) DEFAULT ''"); }
    
    // NOVO: Adiciona a coluna para a Foto de Perfil (Avatar)
    $check_avatar = $pdo->query("SHOW COLUMNS FROM `$tabela_revendedores` LIKE 'avatar'");
    if (!$check_avatar->fetch()) { $pdo->exec("ALTER TABLE `$tabela_revendedores` ADD COLUMN `avatar` VARCHAR(255) DEFAULT ''"); }
} catch (Exception $e) {}

// =========================================================================
// PROCESSA A ATUALIZAÇÃO DOS DADOS E DO AVATAR
// =========================================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['atualizar_perfil'])) {
    $novo_whatsapp = trim($_POST['whatsapp']);
    $novo_email = trim($_POST['email']);
    
    // Busca o avatar atual para não apagar se o usuário não enviar nada novo
    $avatar_path = '';
    try {
        $avatar_path = $pdo->query("SELECT avatar FROM `$tabela_revendedores` WHERE id = " . intval($user_id_logado))->fetchColumn() ?: '';
    } catch (Exception $e) {}

    // 1. Verifica se foi colado um Link de Avatar
    if (!empty($_POST['avatar_url'])) {
        $avatar_path = trim($_POST['avatar_url']);
    }

    // 2. Verifica se foi feito Upload de um Arquivo (Sobrescreve o link se ambos existirem)
    if (isset($_FILES['avatar_file']) && $_FILES['avatar_file']['error'] === UPLOAD_ERR_OK) {
        $upload_dir = 'uploads/avatars/';
        if (!is_dir($upload_dir)) { mkdir($upload_dir, 0755, true); } // Cria a pasta se não existir
        
        $ext = strtolower(pathinfo($_FILES['avatar_file']['name'], PATHINFO_EXTENSION));
        $allowed_exts = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
        
        if (in_array($ext, $allowed_exts)) {
            $new_name = 'avatar_' . $user_id_logado . '_' . time() . '.' . $ext;
            if (move_uploaded_file($_FILES['avatar_file']['tmp_name'], $upload_dir . $new_name)) {
                $avatar_path = $upload_dir . $new_name;
            }
        } else {
            $mensagem = "<div class='alert alert-danger'><i class='fas fa-times-circle'></i> Erro: Formato de imagem inválido! (Use JPG, PNG ou WEBP)</div>";
        }
    }

    if (empty($mensagem)) {
        try {
            $query = "UPDATE `$tabela_revendedores` SET whatsapp = ?, email = ?, avatar = ?";
            $params = [$novo_whatsapp, $novo_email, $avatar_path];
            
            // --- INÍCIO: ALTERAÇÃO DE CREDENCIAIS EXCLUSIVA PARA O ADMIN ---
            if ($role === 'admin') {
                if (!empty($_POST['novo_usuario'])) {
                    $novo_usr = trim($_POST['novo_usuario']);
                    $query .= ", username = ?";
                    $params[] = $novo_usr;
                    $_SESSION['username'] = $novo_usr; 
                    $nome_usuario = $novo_usr; 
                }
                if (!empty($_POST['nova_senha'])) {
                    $nova_pw = $_POST['nova_senha'];
                    $query .= ", password = ?";
                    $params[] = $nova_pw;
                }
            }
            // --- FIM: ALTERAÇÃO DE CREDENCIAIS ---
            
            $query .= " WHERE id = ?";
            $params[] = $user_id_logado;
            
            $stmt = $pdo->prepare($query);
            if ($stmt->execute($params)) {
                $mensagem = "<div class='alert alert-success'><i class='fas fa-check-circle'></i> Dados e Foto atualizados com sucesso!</div>";
            }
        } catch (Exception $e) {
            if (strpos($e->getMessage(), 'Duplicate') !== false) {
                $mensagem = "<div class='alert alert-danger'><i class='fas fa-times-circle'></i> Erro: Este nome de usuário já está em uso!</div>";
            } else {
                $mensagem = "<div class='alert alert-danger'><i class='fas fa-times-circle'></i> Erro ao atualizar dados.</div>";
            }
        }
    }
}

// Busca os dados atualizados do usuário para exibir na tela
try {
    $user_data = $pdo->query("SELECT credits, whatsapp, email, avatar FROM `$tabela_revendedores` WHERE id = " . intval($user_id_logado))->fetch(PDO::FETCH_ASSOC);
    $user_credits = $user_data['credits'] ?? 0;
    $user_whatsapp = $user_data['whatsapp'] ?? '';
    $user_email = $user_data['email'] ?? '';
    $user_avatar = $user_data['avatar'] ?? '';
} catch (Exception $e) { 
    $user_credits = 0; $user_whatsapp = ''; $user_email = ''; $user_avatar = ''; 
}

// ==============================================================================
// DESCOBRE A URL (DNS) ATUAL DO PAINEL AUTOMATICAMENTE
// ==============================================================================
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
$dominio_atual = $_SERVER['HTTP_HOST'];
$dns_completo = $protocol . "://" . $dominio_atual;
// ==============================================================================
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <link rel="stylesheet" href="tema.css">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Meu Perfil - <?php echo htmlspecialchars($nome_painel); ?></title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        /* ==========================================================================
           CSS PREMIUM V4 - DESIGN SIGMA/SaaS
           ========================================================================== */
        :root { 
            --bg-dark: #0b0f14; 
            --bg-sidebar: #0f1115; 
            --bg-card: #161b22; /* Cor de card limpo estilo GitHub/Sigma */
            --text-main: #c9d1d9; 
            --text-muted: #8b949e; 
            --accent: <?php echo htmlspecialchars($cor_primaria); ?>; 
            --border-color: rgba(255, 255, 255, 0.05); 
            --success: #2ea043; 
        }
        * { box-sizing: border-box; }
        body { margin: 0; font-family: 'Inter', 'Segoe UI', sans-serif; background-color: var(--bg-dark); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }
        
        /* SIDEBAR DEFAULT STRUCTURE */
        .sidebar { width: 260px; background-color: var(--bg-sidebar); display: flex; flex-direction: column; transition: 0.3s; border-right: 1px solid var(--border-color); z-index: 1001; flex-shrink: 0; }
        .sidebar-header { padding: 25px 20px; text-align: center; font-size: 22px; font-weight: bold; color: white; border-bottom: 1px solid var(--border-color); }
        .sidebar-logo { max-width: 100%; max-height: 50px; object-fit: contain; }
        .user-info { padding: 20px; text-align: center; border-bottom: 1px solid var(--border-color); }
        .user-info .badge { background: rgba(255, 255, 255, 0.05); color: var(--accent); padding: 4px 10px; border-radius: 4px; font-size: 11px; text-transform: uppercase; font-weight: bold; margin-top: 5px; display: inline-block; }
        .credits-badge { display: block; margin-top: 10px; color: var(--success); font-weight: bold; font-size: 13px; }
        .menu-list { list-style: none; padding: 0; margin: 0; overflow-y: auto; flex: 1; }
        .menu-item { padding: 14px 20px; color: var(--text-main); text-decoration: none; display: flex; align-items: center; transition: 0.2s; border-left: 3px solid transparent; font-size: 15px; cursor: pointer; }
        .menu-item i:first-child { margin-right: 12px; width: 20px; text-align: center; color: var(--text-muted); }
        .menu-item:hover, .menu-item.active { background-color: rgba(255,255,255,0.03); color: white; border-left-color: var(--accent); }
        .menu-item.active i:first-child { color: var(--accent); }
        .submenu { display: none; background: transparent; list-style: none; padding: 0; margin: 0; border-left: 2px solid rgba(255,255,255,0.05); margin-left: 20px; }
        .submenu .menu-item { padding-left: 30px; font-size: 14px; border-left: none; }
        .arrow-icon { margin-left: auto; transition: 0.3s; font-size: 12px; }
        .rotate { transform: rotate(180deg); }
        .menu-category { padding: 20px 20px 8px; font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: bold; letter-spacing: 1px; }
        .logout-btn { padding: 15px; background-color: transparent; border-top: 1px solid var(--border-color); color: var(--text-muted); text-align: center; text-decoration: none; font-weight: bold; margin-top: auto; transition: 0.3s;}
        .logout-btn:hover { color: #ff4b2b; background: rgba(255, 75, 43, 0.1); }
        
        /* MAIN CONTENT */
        .main-content { flex: 1; display: flex; flex-direction: column; overflow-y: auto; width: 100%; position: relative; }
        .topbar { display: flex; justify-content: space-between; align-items: center; padding: 15px 25px; background-color: transparent; border-bottom: 1px solid var(--border-color); flex-shrink: 0; }
        .menu-toggle { display: none; background: none; border: none; color: white; font-size: 22px; cursor: pointer; padding: 5px; }
        .mode-badge { padding: 6px 15px; background: rgba(0, 123, 255, 0.1); color: var(--accent); border-radius: 20px; font-size: 12px; font-weight: bold; border: 1px solid rgba(0, 123, 255, 0.2); white-space: nowrap; display: inline-block; }
        .content-area { padding: 30px; flex: 1; width: 100%; max-width: 1000px; margin: 0 auto; }
        
        /* ALERTAS */
        .alert { padding: 15px; border-radius: 8px; margin-bottom: 20px; font-weight: bold; font-size: 14px; display: flex; align-items: center; gap: 10px; border: none;}
        .alert-success { background: rgba(46, 160, 67, 0.15); color: #3fb950; }
        .alert-danger { background: rgba(248, 81, 73, 0.15); color: #ff7b72; }

        /* PERFIL STYLES PREMIUM */
        .profile-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 25px; }
        
        /* CARD DE RESUMO (ESQUERDA) */
        .card-summary { background: var(--bg-card); border-radius: 12px; border: 1px solid var(--border-color); padding: 30px; text-align: center; box-shadow: 0 4px 20px rgba(0,0,0,0.2); }
        .avatar-circle { width: 110px; height: 110px; border-radius: 50%; background: #0d1117; border: 3px solid var(--accent); display: flex; align-items: center; justify-content: center; font-size: 40px; color: var(--accent); margin: 0 auto 15px auto; overflow: hidden; box-shadow: 0 0 15px rgba(0, 123, 255, 0.3); }
        .user-title { color: white; font-size: 24px; margin: 0 0 5px 0; font-weight: 600; }
        .role-badge { display: inline-block; background: transparent; padding: 0; font-size: 11px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 25px; font-weight: 600; }
        
        .credits-box { background: transparent; border-radius: 10px; padding: 20px; border: 1px solid rgba(46, 160, 67, 0.2); }
        .credits-box span { display: block; font-size: 11px; color: var(--text-muted); text-transform: uppercase; font-weight: bold; margin-bottom: 5px; letter-spacing: 1px;}
        .credits-box h2 { margin: 0; color: var(--success); font-size: 32px; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; }

        /* CARD DE FORMULÁRIO (DIREITA) */
        .card-form { background: var(--bg-card); border-radius: 12px; border: 1px solid var(--border-color); padding: 30px; box-shadow: 0 4px 20px rgba(0,0,0,0.2); }
        .card-form h3 { margin-top: 0; color: white; display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; margin-bottom: 25px; border-bottom: 1px solid var(--border-color); padding-bottom: 15px; }
        
        .form-group { margin-bottom: 20px; }
        .form-group label { display: block; margin-bottom: 8px; color: var(--text-muted); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px;}
        
        .input-group { position: relative; display: flex; align-items: center; }
        .input-group i { position: absolute; left: 15px; color: var(--text-muted); font-size: 16px; }
        .form-control { width: 100%; padding: 14px 14px 14px 45px; background: #0d1117; border: 1px solid var(--border-color); color: white; border-radius: 8px; font-size: 14px; transition: 0.3s; font-family: inherit;}
        .form-control:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
        
        input[type="file"].form-control { padding: 11px 14px 11px 45px; cursor: pointer; color: var(--text-muted); }
        input[type="file"]::-webkit-file-upload-button { background: rgba(255,255,255,0.1); border: none; border-radius: 4px; padding: 5px 10px; color: white; margin-right: 10px; cursor: pointer; }

        .btn-save { background: var(--accent); color: white; padding: 14px; border: none; border-radius: 8px; font-weight: 600; font-size: 14px; cursor: pointer; width: 100%; transition: 0.2s; display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 15px; letter-spacing: 0.5px; }
        .btn-save:hover { filter: brightness(1.1); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 123, 255, 0.4); }

        /* DIVISÓRIA */
        .divider { margin: 30px 0 20px 0; border-top: 1px solid var(--border-color); padding-top: 25px; }

        /* RESPONSIVIDADE MOBILE */
        .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; }
        @media (max-width: 768px) {
            .menu-toggle { display: block; }
            .sidebar { position: fixed; left: -260px; height: 100%; box-shadow: 10px 0 20px rgba(0,0,0,0.5); }
            .sidebar.active { left: 0; }
            .sidebar-overlay.active { display: block; }
            .profile-grid { grid-template-columns: 1fr; gap: 20px; }
            .content-area { padding: 15px; }
            .topbar { padding: 10px 15px; }
        }
    </style>
</head>
<body>
    <div class="sidebar-overlay" id="overlay" onclick="toggleMenu()"></div>
    
    <?php include 'sidebar.php'; ?>

    <div class="main-content">
        <header class="topbar">
            <div style="display:flex; align-items:center;">
                <button class="menu-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>
                <h2 style="margin:0; font-size: 18px; color:white; margin-left: 10px;">Configurações da Conta</h2>
            </div>
            <div class="topbar-right">
                <span class="mode-badge"><i class="fas fa-database"></i> MODO: <?php echo defined('MODO_SISTEMA') ? strtoupper(MODO_SISTEMA) : strtoupper($modo_ativo); ?></span>
            </div>
        </header>

        <div class="content-area">
            <?php echo $mensagem; ?>
            
            <div class="profile-grid">
                
                <!-- LADO ESQUERDO: FOTO E RESUMO -->
                <div class="card-summary">
                    <div class="avatar-circle">
                        <?php if (!empty($user_avatar)): ?>
                            <img src="<?php echo htmlspecialchars($user_avatar); ?>" alt="Avatar" style="width: 100%; height: 100%; object-fit: cover;">
                        <?php else: ?>
                            <i class="fas fa-user"></i>
                        <?php endif; ?>
                    </div>
                    <h2 class="user-title"><?php echo htmlspecialchars($nome_usuario); ?></h2>
                    <div class="role-badge"><?php echo $role === 'admin' ? 'Administrador do Sistema' : 'Revendedor Autorizado'; ?></div>
                    
                    <div class="credits-box">
                        <span><i class="fas fa-wallet"></i> Saldo Atual</span>
                        <h2><i class="fas fa-coins"></i> <?php echo number_format($user_credits, 1); ?></h2>
                    </div>
                </div>

                <!-- LADO DIREITO: FORMULÁRIO -->
                <div class="card-form">
                    <h3><i class="fas fa-address-card" style="color: var(--accent);"></i> Editar Perfil</h3>
                    
                    <!-- ENCTYPE ADICIONADO PARA PERMITIR UPLOAD DE FOTOS -->
                    <form method="POST" enctype="multipart/form-data">
                        
                        <!-- NOVA SEÇÃO: AVATAR -->
                        <div class="form-group">
                            <label>Foto de Perfil (Enviar Arquivo)</label>
                            <div class="input-group">
                                <i class="fas fa-camera"></i>
                                <input type="file" name="avatar_file" class="form-control" accept="image/png, image/jpeg, image/jpg, image/webp">
                            </div>
                        </div>

                        <div class="form-group">
                            <label>Ou Link da Foto (URL)</label>
                            <div class="input-group">
                                <i class="fas fa-link"></i>
                                <input type="text" name="avatar_url" class="form-control" placeholder="https://site.com/minha-foto.jpg" value="<?php echo (!empty($user_avatar) && strpos($user_avatar, 'http') === 0) ? htmlspecialchars($user_avatar) : ''; ?>">
                            </div>
                        </div>

                        <div class="divider"></div>

                        <!-- SEÇÃO: CONTATO -->
                        <div class="form-group">
                            <label>Número do WhatsApp</label>
                            <div class="input-group">
                                <i class="fab fa-whatsapp"></i>
                                <input type="text" name="whatsapp" class="form-control" placeholder="Ex: 5511999999999" value="<?php echo htmlspecialchars($user_whatsapp); ?>">
                            </div>
                        </div>
                        
                        <div class="form-group">
                            <label>E-mail</label>
                            <div class="input-group">
                                <i class="fas fa-envelope"></i>
                                <input type="email" name="email" class="form-control" placeholder="seuemail@gmail.com" value="<?php echo htmlspecialchars($user_email); ?>">
                            </div>
                        </div>

                        <?php if ($role === 'admin'): ?>
                        <div class="divider">
                            <h3 style="border: none; padding: 0;"><i class="fas fa-user-shield" style="color: var(--accent);"></i> Credenciais de Acesso (Admin)</h3>
                            
                            <div class="form-group">
                                <label>Nome de Usuário</label>
                                <div class="input-group">
                                    <i class="fas fa-user"></i>
                                    <input type="text" name="novo_usuario" class="form-control" value="<?php echo htmlspecialchars($nome_usuario); ?>" required>
                                </div>
                            </div>

                            <div class="form-group">
                                <label>Nova Senha</label>
                                <div class="input-group">
                                    <i class="fas fa-lock"></i>
                                    <input type="text" name="nova_senha" class="form-control" placeholder="Deixe em branco para não alterar">
                                </div>
                            </div>
                        </div>
                        <?php endif; ?>

                        <button type="submit" name="atualizar_perfil" class="btn-save">
                            <i class="fas fa-save"></i> SALVAR ALTERAÇÕES
                        </button>
                    </form>
                </div>

            </div>
        </div>
        <?php include 'rodape.php'; ?>
    </div>

    <script>
        const sidebar = document.getElementById('sidebar');
        const overlay = document.getElementById('overlay');
        
        function toggleMenu() { 
            if(sidebar) sidebar.classList.toggle('active'); 
            if(overlay) overlay.classList.toggle('active'); 
        }

        function toggleSubmenu(id) {
            const sub = document.getElementById(id);
            const arrow = document.getElementById('arrow-' + id);
            if (sub && sub.style.display === "block") { 
                sub.style.display = "none"; 
                if(arrow) arrow.classList.remove('rotate'); 
            } else if(sub) { 
                sub.style.display = "block"; 
                if(arrow) arrow.classList.add('rotate'); 
            }
        }
    </script>
    <script src="tema.js"></script>
</body>
</html>
