<?php
session_start();

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

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

// Verificação do tenant_id
$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id) {
    die("Tenant não identificado. Por favor, faça login novamente.");
}

if (isset($_SESSION['mensagem'])) {
    echo '<div style="position: fixed; top: 80px; right: 20px; padding: 10px 20px; background: #2ecc71; color: white; border-radius: 4px; z-index: 2000;">'
       . htmlspecialchars($_SESSION['mensagem'])
       . '</div>';
    
    unset($_SESSION['mensagem']);
    
    echo '<script>
            setTimeout(function() {
                const msg = document.querySelector("div[style*=\'position: fixed\']");
                if(msg) msg.style.display = "none";
            }, 3000);
          </script>';
}

require_once 'conexao.php';

if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    header('Location: lista_clientes.php?erro=id_invalido');
    exit;
}

$clienteId = (int)$_GET['id'];

// Consulta do cliente com verificação de tenant
$sql = "SELECT * FROM clientes WHERE id = ? AND tenant_id = ?";
$stmt = $conn->prepare($sql);
if (!$stmt) {
    die("Erro na preparação da consulta: " . $conn->error);
}
$stmt->bind_param("is", $clienteId, $tenant_id);
$stmt->execute();
$resultado = $stmt->get_result();

if ($resultado->num_rows === 0) {
    header('Location: lista_clientes.php?erro=cliente_nao_encontrado');
    exit;
}

$cliente = $resultado->fetch_assoc();
$stmt->close();

// Função para obter nome do usuário com verificação de tenant
function getNomeUsuario($conn, $usuarioId, $tenant_id) {
    $sql = "SELECT nome FROM usuarios WHERE id = ? AND tenant_id = ?";
    $stmt = $conn->prepare($sql);
    if (!$stmt) return "Usuário #".$usuarioId;
    $stmt->bind_param("is", $usuarioId, $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result && $result->num_rows > 0) {
        $row = $result->fetch_assoc();
        return $row['nome'];
    }
    return "Usuário #".$usuarioId;
}

// Consulta unificada de logs e timeline - Atualizada para ser idêntica ao visao_geral_cliente.php
// Consulta unificada de logs e timeline - Versão final corrigida
$sqlLogs = "
(SELECT 
    'log' AS tipo,
    l.id,
    l.cliente_id,
    l.usuario_id,
    l.data_hora AS data_registro,
    l.detalhes,
    NULL AS observacao_geral,
    l.atividade_id,
    a.nome AS nome_atividade,
    a.descricao AS descricao_atividade,
    u.nome AS nome_usuario,
    NULL AS status_anterior,
    NULL AS status_novo
FROM 
    cliente_logs l
LEFT JOIN 
    lista_atividades a ON l.atividade_id = a.id AND a.tenant_id = l.tenant_id
LEFT JOIN 
    usuarios u ON l.usuario_id = u.id AND u.tenant_id = l.tenant_id
WHERE 
    l.cliente_id = ? AND l.tenant_id = ?)

UNION ALL

(SELECT 
    'timeline' AS tipo,
    t.id,
    t.cliente_id,
    t.usuario_id,
    t.data_movimentacao AS data_registro,
    CONCAT('Etapa alterada de ', 
           COALESCE((SELECT nome FROM etapas_funis WHERE id = t.status_anterior), 'Sem etapa'),
           ' para ',
           COALESCE((SELECT nome FROM etapas_funis WHERE id = t.status_novo), 'Sem etapa')) AS detalhes,
    NULL AS observacao_geral,
    NULL AS atividade_id,
    NULL AS nome_atividade,
    NULL AS descricao_atividade,
    u.nome AS nome_usuario,
    t.status_anterior,
    t.status_novo
FROM 
    timeline t
LEFT JOIN 
    usuarios u ON t.usuario_id = u.id AND u.tenant_id = t.tenant_id
WHERE 
    t.cliente_id = ? AND t.tenant_id = ?)

ORDER BY data_registro DESC
";

$stmtLogs = $conn->prepare($sqlLogs);
if ($stmtLogs) {
    $stmtLogs->bind_param("iiii", $clienteId, $tenant_id, $clienteId, $tenant_id);
    $stmtLogs->execute();
    $logs = $stmtLogs->get_result();
    $stmtLogs->close();
} else {
    error_log("Erro ao preparar consulta de logs: " . $conn->error);
    $logs = false;
}

// Consulta produtos associados (corrigido para somar quantidades corretamente)
$sqlProdutos = "SELECT 
                    cp.*,
                    IFNULL(lp.nome, cp.nome_produto) AS nome_exibicao,
                    IFNULL(lp.descricao, cp.descricao) AS descricao_exibicao,
                    IFNULL(lp.valor, cp.valor) AS valor_final,
                    SUM(cp.quantidade) AS total_quantidade,
                    SUM(IFNULL(lp.valor, cp.valor) * cp.quantidade) AS total_valor
                FROM cliente_produtos cp
                LEFT JOIN lista_produtos lp ON (
                    cp.lista_produto_id = lp.id 
                    AND lp.tenant_id = cp.tenant_id
                )
                WHERE cp.cliente_id = ? 
                AND cp.tenant_id = ?
                GROUP BY cp.id, cp.nome_produto, cp.descricao, cp.valor, cp.lista_produto_id, cp.observacoes, cp.data_cadastro
                ORDER BY cp.data_cadastro DESC";

$stmtProdutos = $conn->prepare($sqlProdutos);
if (!$stmtProdutos) {
    die("Erro na preparação da consulta de produtos: " . $conn->error);
}
$stmtProdutos->bind_param("is", $clienteId, $tenant_id);
$stmtProdutos->execute();
$produtos = $stmtProdutos->get_result();

// Cálculo do total dos produtos (corrigido)
$totalProdutos = 0;
$totalQuantidade = 0;
while ($produto = $produtos->fetch_assoc()) {
    $totalProdutos += $produto['valor_final'] * $produto['quantidade'];
    $totalQuantidade += $produto['quantidade'];
}
$produtos->data_seek(0);
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta name="csrf-token" content="<?php echo $_SESSION['csrf_token']; ?>">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SON - Detalhes do Cliente</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
        }
        
        .header-fixed {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background-color: #f5f5f5;
            padding: 15px 20px;
            z-index: 1000;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .header-fixed img {
            height: 50px;
            margin-right: 15px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
        }
        
        .menu-container {
            position: relative;
            display: inline-block;
        }
        
        .hamburger-btn {
            background: none;
            border: none;
            font-size: 24px;
            cursor: pointer;
            padding: 10px;
            color: #333;
        }
        
        .dropdown-menu {
            display: none;
            position: absolute;
            right: 0;
            background-color: white;
            min-width: 200px;
            box-shadow: 0 8px 16px rgba(0,0,0,0.2);
            z-index: 1;
            border-radius: 4px;
            overflow: hidden;
        }
        
        .dropdown-menu a {
            color: #333;
            padding: 12px 16px;
            text-decoration: none;
            display: block;
            text-align: left;
            transition: background-color 0.3s;
        }
        
        .dropdown-menu a:hover {
            background-color: #f1f1f1;
        }
        
        .dropdown-menu.show {
            display: block;
        }
        
        .content-wrapper {
            margin-top: 120px;
            padding: 20px;
        }
        
        .container {
            display: flex;
            max-width: 1300px;
            margin: 0 auto;
            gap: 25px;
            align-items: stretch;
        }
        
        .detalhes-cliente { 
            background: #fff; 
            padding: 25px; 
            flex: 1;
            border-radius: 10px; 
            box-shadow: 0 2px 15px rgba(0,0,0,0.08); 
            margin-bottom: 20px;
            display: flex;
            flex-direction: column;
        }
        
        .timeline-container {
            flex: 1;
            background: #fff;
            padding: 25px;
            border-radius: 10px;
            box-shadow: 0 2px 15px rgba(0,0,0,0.08);
            margin-bottom: 20px;
            display: flex;
            flex-direction: column;
            position: relative;
            overflow: hidden;
        }
        
        .timeline-header {
            position: sticky;
            top: 0;
            background: white;
            z-index: 2;
            padding: 15px 0;
            margin-bottom: 15px;
            border-bottom: 1px solid #eaeaea;
        }
        
        .timeline-content-wrapper {
            flex: 1;
            overflow-y: auto;
            margin-top: 10px;
        }
        
        h3 { 
            margin: 0;
            color: #2c3e50;
            font-size: 1.5em;
        }
        
        .info-section { 
            margin: 20px 0; 
            padding-bottom: 15px;
            border-bottom: 1px solid #f0f0f0;
        }
        
        .info-section:last-child {
            border-bottom: none;
        }
        
        .info-section h4 { 
            margin: 0 0 15px; 
            color: #34495e; 
            font-size: 1.1em;
            font-weight: 600;
        }
        
        .info-section p { 
            margin: 8px 0; 
            line-height: 1.5;
        }
        
        .info-section strong {
            color: #2c3e50;
            font-weight: 600;
            min-width: 100px;
            display: inline-block;
        }
        
        .acoes { 
            display: flex; 
            gap: 12px; 
            justify-content: flex-end; 
            margin-top: 25px; 
            padding-top: 15px;
            border-top: 1px solid #f0f0f0;
        }
        
        .btn { 
            padding: 10px 18px; 
            border: none; 
            border-radius: 6px; 
            color: #fff; 
            cursor: pointer; 
            font-weight: 600; 
            display: inline-flex; 
            align-items: center; 
            gap: 8px; 
            transition: all 0.3s ease;
            font-size: 0.9em;
        }
        
        .btn:hover { 
            transform: translateY(-2px);
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        }
        
        .btn:active {
            transform: translateY(0);
        }
        
        .btn-editar { 
            background: #3498db; 
        }
        
        .btn-excluir { 
            background: #e74c3c; 
        }
        
        .btn-fechar { 
            background: #7f8c8d; 
        }
        
        .btn-adicionar-produto {
            background: #2ecc71;
        }
        
        /* Timeline styles - igual ao visao_geral_cliente.php */
        .timeline-entry { 
            border-left: 3px solid #3498db; 
            padding-left: 20px; 
            margin-bottom: 20px; 
            position: relative;
            padding-bottom: 5px;
        }
        
        .timeline-entry:last-child {
            margin-bottom: 0;
        }
        
        .timeline-entry:before {
            content: '';
            position: absolute;
            left: -7px;
            top: 5px;
            width: 13px;
            height: 13px;
            border-radius: 50%;
            background: #3498db;
            border: 3px solid #fff;
            box-shadow: 0 0 0 2px #3498db;
        }
        
        .timeline-content {
            background: #f8fafc; 
            padding: 15px; 
            border-radius: 8px; 
            margin-left: -20px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.05);
            transition: all 0.3s ease;
        }
        
        .timeline-content:hover {
            box-shadow: 0 3px 10px rgba(0,0,0,0.1);
        }
        
        .timeline-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 8px;
        }
        
        .timeline-user {
            font-weight: 600;
            color: #2c3e50;
        }
        
        .timeline-date {
            font-size: 0.85em;
            color: #7f8c8d;
            display: flex;
            align-items: center;
            gap: 5px;
        }
        
        .timeline-details { 
            margin-top: 10px; 
            color: #555; 
            font-size: 0.95em;
            line-height: 1.5;
        }
        
        .no-logs { 
            color: #95a5a6; 
            font-style: italic; 
            padding: 15px 0;
            text-align: center;
            background: #f8f9fa;
            border-radius: 8px;
        }
        
        /* Estilo para mudança de etapa */
        .timeline-entry.mudanca-etapa {
            border-left-width: 4px;
            border-left-style: solid;
        }
        
        .timeline-entry.mudanca-etapa:before {
            content: '';
            position: absolute;
            left: -8px;
            top: 5px;
            width: 14px;
            height: 14px;
            border-radius: 50%;
            background: #3498db;
            border: 3px solid #fff;
            box-shadow: 0 0 0 2px #3498db;
        }
        
        .fa-arrows-alt-h {
            transform: rotate(90deg);
        }
        
        /* Products info styles */
        .produtos-info {
            display: flex;
            justify-content: space-between;
            margin-top: 15px;
            padding: 15px;
            background: #f8f9fa;
            border-radius: 8px;
        }
        
        .produtos-info-item {
            text-align: center;
        }
        
        .produtos-info-label {
            font-size: 0.9em;
            color: #7f8c8d;
            margin-bottom: 5px;
        }
        
        .produtos-info-value {
            font-size: 1.2em;
            font-weight: 600;
            color: #2c3e50;
        }
        
        .produtos-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 15px;
            font-size: 0.95em;
        }
        
        .produtos-table th, .produtos-table td {
            padding: 12px 15px;
            text-align: left;
            border-bottom: 1px solid #e0e0e0;
        }
        
        .produtos-table th {
            background-color: #f8f9fa;
            font-weight: 600;
            color: #2c3e50;
        }
        
        .produtos-table tr:hover {
            background-color: #f5f7fa;
        }
        
        .produtos-table .text-right {
            text-align: right;
        }
        
        .produtos-table .text-center {
            text-align: center;
        }
        
        .total-row {
            font-weight: 600;
            background-color: #f1f8fe !important;
        }
        
        .total-row td {
            padding-top: 15px;
            border-top: 2px solid #3498db;
        }
        
        .no-produtos {
            color: #95a5a6;
            font-style: italic;
            padding: 15px 0;
            text-align: center;
            background: #f8f9fa;
            border-radius: 8px;
            margin-top: 10px;
        }
        
        .produto-observacao {
            font-size: 0.85em;
            color: #666;
            margin-top: 5px;
            font-style: italic;
        }
        
        .timeline-content-wrapper::-webkit-scrollbar {
            width: 8px;
        }
        
        .timeline-content-wrapper::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 10px;
        }
        
        .timeline-content-wrapper::-webkit-scrollbar-thumb {
            background: #bdc3c7;
            border-radius: 10px;
        }
        
        .timeline-content-wrapper::-webkit-scrollbar-thumb:hover {
            background: #95a5a6;
        }
        
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0,0,0,0.4);
        }
        
        .modal-content {
            background-color: #fefefe;
            margin: 5% auto;
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.15);
            width: 80%;
            max-width: 900px;
            animation: modalopen 0.3s;
        }
        
        @keyframes modalopen {
            from {opacity: 0; transform: translateY(-50px);}
            to {opacity: 1; transform: translateY(0);}
        }
        
        .modal-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: 1px solid #eee;
            padding-bottom: 15px;
            margin-bottom: 20px;
        }
        
        .modal-header h3 {
            margin: 0;
            color: #2c3e50;
            font-size: 1.4em;
        }
        
        .close-modal {
            color: #aaa;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
            transition: color 0.3s;
        }
        
        .close-modal:hover {
            color: #333;
        }
        
        .modal-body {
            margin-bottom: 20px;
        }
        
        .modal-footer {
            display: flex;
            justify-content: flex-end;
            gap: 10px;
            padding-top: 15px;
            border-top: 1px solid #eee;
        }
        
        .form-group {
            margin-bottom: 15px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 5px;
            font-weight: 600;
            color: #2c3e50;
        }
        
        .form-control {
            width: 100%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 1em;
            transition: border-color 0.3s;
        }
        
        .form-control:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 0 2px rgba(52,152,219,0.2);
        }
        
        .form-row {
            display: flex;
            gap: 15px;
        }
        
        .form-row .form-group {
            flex: 1;
        }
        
        @media (max-width: 992px) {
            .container {
                flex-direction: column;
                gap: 15px;
            }
            
            .detalhes-cliente, .timeline-container {
                width: 100%;
            }
            
            .timeline-container {
                order: -1;
            }
        }
        
        @media (max-width: 768px) {
            .modal-content {
                width: 90%;
                margin: 10% auto;
            }
            
            .produtos-table {
                display: block;
                overflow-x: auto;
                white-space: nowrap;
            }
            
            .form-row {
                flex-direction: column;
                gap: 0;
            }
        }
    </style>
</head>
<body>
    <div class="header-fixed">
        <img src="tvitec.png" alt="Logo TVITEC"> 
        <h2>Sistema de Organização de Negócios</h2>
        <div style="margin-right: 15px; font-weight: bold; color: #333; font-size: 1.1em;">
            Olá, <?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário'); ?>
        </div>
        
        <div class="menu-container">
            <button class="hamburger-btn">☰</button>
            <div class="dropdown-menu" id="dropdownMenu">
                <a href="index.php" class="menu-btn-primary">← Início</a>
                
                <?php if ($_SESSION['permissao'] === 'usuario' || $_SESSION['permissao'] === 'vendedor'): ?>
                    <a href="cadastrar_cliente.php" class="menu-btn-success">➕ Novo Cliente</a>
                <?php endif; ?>
                <a href="lista_clientes.php" class="menu-btn-primary">👥 Listar Clientes</a>
                <a href="lista_produtos.php" class="menu-btn-primary">📋 Lista de Produtos</a>
                <a href="cadastrar_produto.php" class="menu-btn-primary">📦 Novo Produto</a>
                <a href="dashboard_clientes.php" class="menu-btn-primary">📊 Dashboard</a>
                
                <?php if ($_SESSION['permissao'] === 'admin'): ?>
                    <a href="cadastrar_cliente.php" class="menu-btn-success">➕ Novo Cliente</a>
                    <a href="cadastrar_usuario.php" class="menu-btn-primary">👤 Cadastrar Usuário</a>
                    <a href="gerenciar_usuarios.php" class="menu-btn-primary">👥 Gerenciar Usuários</a>
                <?php endif; ?>
                
                <a href="#" onclick="abrirModalAlterarSenha()" class="menu-btn-primary">🔒 Alterar Senha</a>
                <a href="logout.php" class="menu-btn-danger">🚪 Sair</a>
                <h6>Tvitecnologia SON v1.0</h6>
            </div>
        </div>
    </div>

    <div class="content-wrapper">
        <div class="container">
            <div class="detalhes-cliente">
                <h3><?= htmlspecialchars($cliente['Nome_Cliente'] ?? $cliente['Nome'] ?? 'Cliente') ?></h3>

                <div class="info-section">
                    <h4>Informações Básicas</h4>
                    <p><strong>Email:</strong> <?= htmlspecialchars($cliente['Email'] ?? '') ?></p>
                    <p><strong>Telefone:</strong> <?= htmlspecialchars($cliente['Telefone'] ?? $cliente['telefone'] ?? '') ?></p>
                    <p><strong>Status:</strong> 
                        <?php
                        $statusText = [1=>'Contactar', 2=>'Contactados', 3=>'Negociação', 4=>'Agenda', 5=>'Visitado', 6=>'Vendido'];
                        echo $statusText[$cliente['status'] ?? 1] ?? 'Desconhecido';
                        ?>
                    </p>
                </div>

                <div class="info-section">
                    <h4>Observações</h4>
                    <p><?= !empty($cliente['Observacoes']) ? nl2br(htmlspecialchars($cliente['Observacoes'])) : 'Nenhuma observação cadastrada' ?></p>
                </div>

                <div class="info-section">
                    <h4>Produtos Associados</h4>
                    
                    <?php if ($produtos->num_rows > 0): ?>
                        <table class="produtos-table">
                            <thead>
                                <tr>
                                    <th>Produto</th>
                                    <th>Descrição</th>
                                    <th class="text-center">Qtd</th>
                                    <th class="text-right">Valor Unit.</th>
                                    <th class="text-right">Subtotal</th>
                                </tr>
                            </thead>
                            <tbody>
                                
                                <?php while ($produto = $produtos->fetch_assoc()): ?>
                                    <tr>
                                        <td>
                                            <?= htmlspecialchars($produto['nome_exibicao']) ?>
                                            <?php if (!empty($produto['observacoes'])): ?>
                                                <div class="produto-observacao"><?= nl2br(htmlspecialchars($produto['observacoes'])) ?></div>
                                            <?php endif; ?>
                                        </td>
                                        <td><?= htmlspecialchars($produto['descricao_exibicao']) ?></td>
                                        <td class="text-center"><?= $produto['quantidade'] ?></td>
                                        <td class="text-right">R$ <?= number_format($produto['valor_final'], 2, ',', '.') ?></td>
                                        <td class="text-right">R$ <?= number_format($produto['valor_final'] * $produto['quantidade'], 2, ',', '.') ?></td>
                                    </tr>
                                <?php endwhile; ?>
                                <tr class="total-row">
                                    <td colspan="4" class="text-right"><strong>Total:</strong></td>
                                    <td class="text-right">R$ <?= number_format($totalProdutos, 2, ',', '.') ?></td>
                                </tr>
                            </tbody>
                        </table>
                        <div class="produtos-info">
                            <div class="produtos-info-item">
                                <div class="produtos-info-label">Quantidade Total</div>
                                <div class="produtos-info-value"><?= $totalQuantidade ?></div>
                            </div>
                            <div class="produtos-info-item">
                                <div class="produtos-info-label">Valor Total</div>
                                <div class="produtos-info-value">R$ <?= number_format($totalProdutos, 2, ',', '.') ?></div>
                            </div>
                        </div>
                    <?php else: ?>
                        <div class="no-produtos">Nenhum produto associado a este cliente.</div>
                    <?php endif; ?>
                </div>

                <div class="acoes">
                    <button class="btn btn-editar" onclick="window.location.href='editar_cliente.php?id=<?= (int)$clienteId ?>'">
                        <i class="fas fa-edit"></i> Editar
                    </button>
                    <button class="btn btn-fechar" onclick="window.location.href='lista_clientes.php'">
                        <i class="fas fa-times"></i> Fechar
                    </button>
                </div>
            </div>

           
                
                
    
    <div id="produtoModal" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h3>Adicionar Produto</h3>
                <span class="close-modal">&times;</span>
            </div>
            <div class="modal-body">
                <form id="formProduto" action="adicionar_produto.php" method="POST">
                    <input type="hidden" name="cliente_id" value="<?= $clienteId ?>">
                    <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">
                    <input type="hidden" name="tenant_id" value="<?= $tenant_id ?>">
                    
                    <div class="form-group">
                        <label for="nome_produto">Nome do Produto</label>
                        <input type="text" id="nome_produto" name="nome_produto" class="form-control" required>
                    </div>
                    
                    <div class="form-group">
                        <label for="descricao">Descrição</label>
                        <textarea id="descricao" name="descricao" class="form-control" rows="3"></textarea>
                    </div>
                    
                    <div class="form-row">
                        <div class="form-group">
                            <label for="valor">Valor Unitário</label>
                            <input type="number" id="valor" name="valor" class="form-control" step="0.01" min="0" required>
                        </div>
                        <div class="form-group">
                            <label for="quantidade">Quantidade</label>
                            <input type="number" id="quantidade" name="quantidade" class="form-control" min="1" value="1" required>
                        </div>
                    </div>
                    
                    <div class="form-group">
                        <label for="observacoes">Observações</label>
                        <textarea id="observacoes" name="observacoes" class="form-control" rows="2"></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-fechar close-modal">Cancelar</button>
                <button type="submit" form="formProduto" class="btn btn-adicionar-produto">Salvar</button>
            </div>
        </div>
    </div>

    <div id="modalSenha" class="modal">
        <div class="modal-content">
            <span class="close-modal" onclick="fecharModalAlterarSenha()">&times;</span>
            <h2>Alterar Senha</h2>
            <form id="formAlterarSenha" onsubmit="alterarSenha(event)">
                <div class="form-group">
                    <label for="senhaAtual">Senha Atual:</label>
                    <input type="password" id="senhaAtual" required>
                </div>
                <div class="form-group">
                    <label for="novaSenha">Nova Senha:</label>
                    <input type="password" id="novaSenha" required minlength="6">
                </div>
                <div class="form-group">
                    <label for="confirmarSenha">Confirmar Nova Senha:</label>
                    <input type="password" id="confirmarSenha" required minlength="6">
                </div>
                <div style="text-align: right;">
                    <button type="button" class="btn btn-default" onclick="fecharModalAlterarSenha()">Cancelar</button>
                    <button type="submit" class="btn btn-primary">Alterar Senha</button>
                </div>
            </form>
            <div id="mensagemSenha" style="margin-top: 15px;"></div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script>
    document.addEventListener('DOMContentLoaded', function() {
        const modal = document.getElementById('produtoModal');
        const btnAddProduto = document.getElementById('btnAddProduto');
        const closeModal = document.querySelector('.close-modal');
        const closeModalBtn = document.querySelector('.modal-footer .btn-fechar');
        
        if(btnAddProduto) {
            btnAddProduto.addEventListener('click', function() {
                modal.style.display = 'block';
            });
        }
        
        if(closeModal) {
            closeModal.addEventListener('click', function() {
                modal.style.display = 'none';
            });
        }
        
        if(closeModalBtn) {
            closeModalBtn.addEventListener('click', function() {
                modal.style.display = 'none';
            });
        }
        
        window.addEventListener('click', function(e) {
            if(e.target === modal) {
                modal.style.display = 'none';
            }
        });
        
        const btnExcluir = document.getElementById('btnExcluir');
        if (btnExcluir) {
            btnExcluir.addEventListener('click', function() {
                const clienteId = this.getAttribute('data-id');
                const csrfToken = document.querySelector('meta[name="csrf-token"]').content;

                Swal.fire({
                    title: 'Confirmar Exclusão',
                    text: "Esta ação não pode ser desfeita! Todos os dados do cliente serão permanentemente removidos.",
                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonColor: '#d33',
                    cancelButtonColor: '#3085d6',
                    confirmButtonText: 'Sim, excluir permanentemente',
                    cancelButtonText: 'Cancelar',
                    backdrop: true,
                    allowOutsideClick: false,
                    showLoaderOnConfirm: true,
                    preConfirm: () => {
                        return fetch('excluir_cliente.php', {
                            method: 'POST',
                            headers: {
                                'Content-Type': 'application/x-www-form-urlencoded',
                            },
                            body: `id=${clienteId}&csrf_token=${encodeURIComponent(csrfToken)}&tenant_id=${encodeURIComponent('<?= $tenant_id ?>')}`
                        })
                        .then(response => {
                            if (!response.ok) {
                                throw new Error('Falha na rede');
                            }
                            return response.json();
                        })
                        .catch(error => {
                            Swal.showValidationMessage(`Erro na requisição: ${error}`);
                        });
                    }
                }).then((result) => {
                    if (result.isConfirmed) {
                        Swal.fire(
                            'Excluído!',
                            'O cliente foi excluído com sucesso.',
                            'success'
                        ).then(() => {
                            window.location.href = 'lista_clientes.php';
                        });
                    }
                });
            });
        }

        document.querySelector('.hamburger-btn').addEventListener('click', function() {
            document.getElementById('dropdownMenu').classList.toggle('show');
        });

        window.addEventListener('click', function(event) {
            if (!event.target.matches('.hamburger-btn')) {
                const dropdowns = document.getElementsByClassName('dropdown-menu');
                for (let i = 0; i < dropdowns.length; i++) {
                    const openDropdown = dropdowns[i];
                    if (openDropdown.classList.contains('show')) {
                        openDropdown.classList.remove('show');
                    }
                }
            }
        });

        function abrirModalAlterarSenha() {
            document.getElementById('modalSenha').style.display = 'block';
            document.getElementById('dropdownMenu').classList.remove('show');
        }
        
        function fecharModalAlterarSenha() {
            document.getElementById('modalSenha').style.display = 'none';
            document.getElementById('mensagemSenha').textContent = '';
            document.getElementById('formAlterarSenha').reset();
        }
        
        function alterarSenha(event) {
            event.preventDefault();
            
            const senhaAtual = document.getElementById('senhaAtual').value;
            const novaSenha = document.getElementById('novaSenha').value;
            const confirmarSenha = document.getElementById('confirmarSenha').value;
            const mensagemElement = document.getElementById('mensagemSenha');
            const btnSubmit = event.target.querySelector('button[type="submit"]');
            
            mensagemElement.textContent = '';
            mensagemElement.style.color = '';
            btnSubmit.disabled = true;
            btnSubmit.textContent = 'Processando...';
            
            if (novaSenha !== confirmarSenha) {
                mensagemElement.textContent = 'As senhas não coincidem!';
                mensagemElement.style.color = 'red';
                btnSubmit.disabled = false;
                btnSubmit.textContent = 'Alterar Senha';
                return;
            }
            
            if (novaSenha.length < 6) {
                mensagemElement.textContent = 'A senha deve ter pelo menos 6 caracteres!';
                mensagemElement.style.color = 'red';
                btnSubmit.disabled = false;
                btnSubmit.textContent = 'Alterar Senha';
                return;
            }
            
            fetch('alterar_senha.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content
                },
                body: JSON.stringify({
                    senhaAtual: senhaAtual,
                    novaSenha: novaSenha,
                    tenant_id: '<?= $tenant_id ?>'
                })
            })
            .then(response => {
                if (!response.ok) {
                    return response.json().then(err => {
                        throw new Error(err.message || 'Erro no servidor');
                    });
                }
                return response.json();
            })
            .then(data => {
                if (data.success) {
                    mensagemElement.textContent = data.message || 'Senha alterada com sucesso!';
                    mensagemElement.style.color = 'green';
                    
                    setTimeout(() => {
                        fecharModalAlterarSenha();
                    }, 2000);
                } else {
                    throw new Error(data.message || 'Erro ao alterar senha');
                }
            })
            .catch(error => {
                console.error('Erro:', error);
                mensagemElement.textContent = error.message || 'Erro ao processar a solicitação!';
                mensagemElement.style.color = 'red';
            })
            .finally(() => {
                btnSubmit.disabled = false;
                btnSubmit.textContent = 'Alterar Senha';
            });
        }
    });
    </script>
</body>
</html>