<?php
session_start();

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

require_once 'conexao.php';

// Função para carregar dados da assinatura
function carregarDadosAssinatura($conn, $tenantId, $usuarioId) {
    try {
        // Carregar logo do tenant
        $stmt = $conn->prepare("SELECT logo_path, nome as nome_tenant FROM tenants WHERE id = ?");
        $stmt->bind_param("i", $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        $tenant = $result->fetch_assoc();
        $stmt->close();
        
        // Carregar dados do usuário
        $stmt = $conn->prepare("SELECT nome, email, assinatura_email, telefone, cargo FROM usuarios WHERE id = ?");
        $stmt->bind_param("i", $usuarioId);
        $stmt->execute();
        $result = $stmt->get_result();
        $usuario = $result->fetch_assoc();
        $stmt->close();
        
        return [
            'tenant' => $tenant,
            'usuario' => $usuario
        ];
        
    } catch (Exception $e) {
        error_log("Erro ao carregar dados da assinatura: " . $e->getMessage());
        return null;
    }
}

// Processar atualização da assinatura
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $usuarioId = (int) $_SESSION['usuario_id'];
    
    // Verificar se é para resetar a assinatura
    if (isset($_POST['resetar_assinatura'])) {
        try {
            $stmt = $conn->prepare("UPDATE usuarios SET assinatura_email = NULL, telefone = ?, cargo = ?, updated_at = NOW() WHERE id = ?");
            $stmt->bind_param("ssi", $_POST['telefone'], $_POST['cargo'], $usuarioId);
            
            if ($stmt->execute()) {
                $_SESSION['mensagem'] = "Assinatura resetada para o padrão com sucesso!";
                $_SESSION['mensagem_tipo'] = 'sucesso';
            } else {
                throw new Exception("Erro ao resetar assinatura: " . $stmt->error);
            }
            
            $stmt->close();
            header("Location: editar_assinatura.php");
            exit();
            
        } catch (Exception $e) {
            $_SESSION['mensagem'] = $e->getMessage();
            $_SESSION['mensagem_tipo'] = 'erro';
        }
    } else {
        // Atualização normal da assinatura
        $assinatura = trim($_POST['assinatura_email'] ?? '');
        $telefone = trim($_POST['telefone'] ?? '');
        $cargo = trim($_POST['cargo'] ?? '');
        
        try {
            $stmt = $conn->prepare("UPDATE usuarios SET assinatura_email = ?, telefone = ?, cargo = ?, updated_at = NOW() WHERE id = ?");
            $stmt->bind_param("sssi", $assinatura, $telefone, $cargo, $usuarioId);
            
            if ($stmt->execute()) {
                $_SESSION['mensagem'] = "Assinatura atualizada com sucesso!";
                $_SESSION['mensagem_tipo'] = 'sucesso';
            } else {
                throw new Exception("Erro ao atualizar assinatura: " . $stmt->error);
            }
            
            $stmt->close();
            header("Location: editar_assinatura.php");
            exit();
            
        } catch (Exception $e) {
            $_SESSION['mensagem'] = $e->getMessage();
            $_SESSION['mensagem_tipo'] = 'erro';
        }
    }
}

// Carregar dados atuais
$usuarioId = (int) $_SESSION['usuario_id'];
$tenantId = (int) $_SESSION['tenant_id'];
$dadosAssinatura = carregarDadosAssinatura($conn, $tenantId, $usuarioId);

if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon_io/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon_io/favicon-32x32.png">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SON - Editar Assinatura</title>
    <meta name="csrf-token" content="<?php echo $_SESSION['csrf_token']; ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <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 Lateral - CORRETO igual aos outros arquivos */
        .sidebar {
            position: fixed;
            left: 0;
            top: 80px;
            height: calc(100vh - 80px);
            width: 60px;
            background: white;
            box-shadow: 2px 0 5px rgba(0,0,0,0.1);
            z-index: 999;
            transition: width 0.3s ease;
            overflow-x: hidden;
        }
        
        .sidebar-menu {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        
        .sidebar-menu li {
            border-bottom: 1px solid #eee;
        }
        
        .sidebar-menu a {
            display: flex;
            align-items: center;
            padding: 15px 20px;
            text-decoration: none;
            color: #333;
            white-space: nowrap;
            transition: background-color 0.3s;
        }
        
        .sidebar-menu i {
            width: 24px;
            height: 24px;
            margin-right: 15px;
            text-align: center;
            flex-shrink: 0;
        }
        
        .sidebar-menu .menu-text {
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        /* Classes para menu */
        .menu-btn-success {
            color: #6B8E23;
        }
        
        .menu-btn-primary {
            color: #0000FF;
        }
        
        .menu-btn-danger {
            color: #e74c3c;
        }
        
        .content-wrapper {
            margin-top: 20px;
            padding: 60px;
            margin-right: 80px;
            margin-left: 80px;
            transition: margin-left 0.3s ease;
        }
        
        .container {
            max-width: 800px;
            margin: 0 auto;
            background: white;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }
        
        h1 {
            color: #333;
            border-bottom: 1px solid #eee;
            padding-bottom: 10px;
            margin-top: 0;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 8px;
            font-weight: 600;
            color: #555;
        }
        
        .form-group input, 
        .form-group textarea {
            width: 100%;
            padding: 12px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 16px;
            box-sizing: border-box;
            transition: border-color 0.3s;
        }
        
        .form-group input:focus, 
        .form-group textarea:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2);
        }
        
        .form-group textarea {
            height: 200px;
            resize: vertical;
            font-family: Arial, sans-serif;
        }
        
        .btn {
            padding: 12px 20px;
            border: none;
            border-radius: 4px;
            color: white;
            cursor: pointer;
            font-size: 16px;
            transition: all 0.3s;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            text-decoration: none;
            margin-right: 10px;
        }
        
        .btn-primary {
            background-color: #3498db;
        }
        
        .btn-primary:hover {
            background-color: #2980b9;
        }
        
        .btn-secondary {
            background-color: #6c757d;
        }
        
        .btn-secondary:hover {
            background-color: #545b62;
        }
        
        .btn-warning {
            background-color: #ffc107;
            color: #212529;
        }
        
        .btn-warning:hover {
            background-color: #e0a800;
        }
        
        .preview-section {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 6px;
            padding: 20px;
            margin-bottom: 25px;
        }
        
        .preview-section h3 {
            margin-top: 0;
            color: #495057;
        }
        
        .assinatura-preview {
            background: white;
            border: 1px solid #dee2e6;
            border-radius: 4px;
            padding: 15px;
            margin-top: 15px;
        }
        
        .alert {
            padding: 15px;
            margin-bottom: 20px;
            border: 1px solid transparent;
            border-radius: 4px;
            text-align: center;
        }
        
        .alert-success {
            background-color: #dff0d8;
            border-color: #d6e9c6;
            color: #3c763d;
        }
        
        .alert-danger {
            background-color: #f2dede;
            border-color: #ebccd1;
            color: #a94442;
        }
        
        .button-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-top: 30px;
        }
        
        .user-initial {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: #ccc;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            font-size: 1.2em;
        }
        
        .admin-fixed-btn {
            position: fixed;
            bottom: 30px;
            right: 30px;
            background: #8e44ad;
            color: white;
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
            z-index: 999;
            cursor: pointer;
            transition: all 0.3s;
        }

        .admin-fixed-btn:hover {
            transform: scale(1.1);
            box-shadow: 0 6px 12px rgba(0,0,0,0.3);
        }

        .admin-fixed-btn .tooltip {
            position: absolute;
            right: 70px;
            background: #333;
            color: white;
            padding: 5px 10px;
            border-radius: 4px;
            font-size: 14px;
            white-space: nowrap;
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }

        .admin-fixed-btn:hover .tooltip {
            opacity: 1;
        }
        
        .version-info {
            position: fixed;
            bottom: 10px;
            left: 10px;
            color: #7f8c8d;
            font-size: 0.8em;
        }

        /* Responsividade */
        @media (max-width: 768px) {
            .header-fixed {
                padding: 12px 15px;
            }
            
            .header-fixed h2 {
                font-size: 1.3rem;
            }
            
            .content-wrapper {
                margin-top: 80px;
                padding: 15px;
                margin-left: 0;
            }
            
            .sidebar {
                display: none;
            }
            
            .container {
                padding: 18px;
            }
            
            .button-group {
                flex-direction: column;
            }
            
            .btn {
                width: 100%;
                justify-content: center;
                margin-bottom: 10px;
                margin-right: 0;
            }
        }
    </style>
</head>
<body>

<?php include 'menu_lateral.php'; ?>

<div class="content-wrapper">
    <div class="container">
        <h1><i class="fas fa-signature"></i> Editar Assinatura de E-mail</h1>
        
        <?php if (isset($_SESSION['mensagem'])): ?>
            <div class="alert <?php echo ($_SESSION['mensagem_tipo'] ?? '') === 'sucesso' ? 'alert-success' : 'alert-danger'; ?>">
                <strong><?php echo ($_SESSION['mensagem_tipo'] ?? '') === 'sucesso' ? 'Sucesso!' : 'Erro!'; ?></strong>
                <?php echo htmlspecialchars($_SESSION['mensagem']); ?>
            </div>
            <?php 
            unset($_SESSION['mensagem']);
            unset($_SESSION['mensagem_tipo']);
            ?>
        <?php endif; ?>
        
        <div class="preview-section">
            <h3><i class="fas fa-eye"></i> Prévia da Assinatura</h3>
            <p>Como sua assinatura aparecerá nos e-mails:</p>
            <div class="assinatura-preview" id="previewAssinatura">
                <?php 
                if (!empty($dadosAssinatura['usuario']['assinatura_email'])) {
                    echo $dadosAssinatura['usuario']['assinatura_email'];
                } else {
                    // Mostrar assinatura padrão
                    $logo = $dadosAssinatura['tenant']['logo_path'] ?? '';
                    $nomeUsuario = $dadosAssinatura['usuario']['nome'] ?? '';
                    $emailUsuario = $dadosAssinatura['usuario']['email'] ?? '';
                    $telefoneUsuario = $dadosAssinatura['usuario']['telefone'] ?? '';
                    $cargoUsuario = $dadosAssinatura['usuario']['cargo'] ?? '';
                    $nomeTenant = $dadosAssinatura['tenant']['nome_tenant'] ?? '';
                    
                    echo "<div style='margin-top: 30px; padding-top: 20px; border-top: 2px solid #007bff; font-family: Arial, sans-serif; color: #333;'>";
                    if (!empty($logo)) {
                        echo "<div style='margin-bottom: 15px;'><img src='{$logo}' alt='{$nomeTenant}' style='max-height: 50px; max-width: 200px;' /></div>";
                    }
                    echo "<div style='line-height: 1.6;'>";
                    echo "<strong>{$nomeUsuario}</strong>";
                    if (!empty($cargoUsuario)) echo "<br>{$cargoUsuario}";
                    if (!empty($nomeTenant)) echo "<br>{$nomeTenant}";
                    if (!empty($emailUsuario)) echo "<br>E-mail: <a href='mailto:{$emailUsuario}' style='color: #007bff; text-decoration: none;'>{$emailUsuario}</a>";
                    if (!empty($telefoneUsuario)) echo "<br>Telefone: {$telefoneUsuario}";
                    echo "</div></div>";
                }
                ?>
            </div>
        </div>
        
        <form method="POST" id="assinaturaForm">
            <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
            
            <div class="form-group">
                <label for="assinatura_email">Assinatura Personalizada (HTML)</label>
                <textarea id="assinatura_email" name="assinatura_email" placeholder="Digite sua assinatura personalizada em HTML. Deixe em branco para usar a assinatura padrão."><?php echo htmlspecialchars($dadosAssinatura['usuario']['assinatura_email'] ?? ''); ?></textarea>
                <small style="color: #666;">
                    Use HTML para formatar sua assinatura. Você pode incluir o logo automaticamente usando a variável <code>{logo_tenant}</code>.
                </small>
            </div>
            
            <div class="form-group">
                <label for="telefone">Telefone para Contato</label>
                <input type="text" id="telefone" name="telefone" value="<?php echo htmlspecialchars($dadosAssinatura['usuario']['telefone'] ?? ''); ?>" placeholder="(11) 99999-9999">
            </div>
            
            <div class="form-group">
                <label for="cargo">Cargo/Função</label>
                <input type="text" id="cargo" name="cargo" value="<?php echo htmlspecialchars($dadosAssinatura['usuario']['cargo'] ?? ''); ?>" placeholder="ex: Gerente Comercial">
            </div>
            
            <div class="button-group">
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-save"></i> Salvar Assinatura
                </button>
                
                <button type="button" class="btn btn-warning" id="btnResetarAssinatura">
                    <i class="fas fa-undo"></i> Usar Assinatura Padrão
                </button>
                
                <a href="enviar_email.php" class="btn btn-secondary">
                    <i class="fas fa-arrow-left"></i> Voltar
                </a>
            </div>
        </form>
    </div>
</div>

<!-- Botão Fixo para Administração -->
<?php if (in_array($_SESSION['permissao'] ?? '', ['super_admin'])): ?>
    <div class="admin-fixed-btn" onclick="window.location.href='gerenciar_sistema.php'">
        <i class="fas fa-cog"></i>
        <span class="tooltip">Administração</span>
    </div>
<?php endif; ?>

<script>
    // Atualizar preview em tempo real
    document.getElementById('assinatura_email').addEventListener('input', function() {
        const preview = document.getElementById('previewAssinatura');
        if (this.value.trim() === '') {
            // Recarregar a página para mostrar a assinatura padrão
            location.reload();
        } else {
            preview.innerHTML = this.value;
        }
    });

    // Botão para resetar assinatura
    document.getElementById('btnResetarAssinatura').addEventListener('click', function() {
        Swal.fire({
            title: 'Resetar Assinatura?',
            text: 'Isso irá remover sua assinatura personalizada e usar a assinatura padrão. Deseja continuar?',
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#ffc107',
            cancelButtonColor: '#6c757d',
            confirmButtonText: 'Sim, resetar!',
            cancelButtonText: 'Cancelar'
        }).then((result) => {
            if (result.isConfirmed) {
                // Criar um formulário dinâmico para enviar a requisição de reset
                const form = document.getElementById('assinaturaForm');
                const resetInput = document.createElement('input');
                resetInput.type = 'hidden';
                resetInput.name = 'resetar_assinatura';
                resetInput.value = '1';
                form.appendChild(resetInput);
                form.submit();
            }
        });
    });

    // Verificar se há assinatura personalizada e mostrar alerta informativo
    document.addEventListener('DOMContentLoaded', function() {
        const assinaturaPersonalizada = document.getElementById('assinatura_email').value.trim();
        if (assinaturaPersonalizada !== '') {
            Swal.fire({
                title: 'Assinatura Personalizada Ativa',
                text: 'Você possui uma assinatura personalizada. Use o botão "Usar Assinatura Padrão" para voltar ao modelo padrão.',
                icon: 'info',
                confirmButtonColor: '#007bff',
                confirmButtonText: 'Entendi'
            });
        }
    });
</script>
<?php include 'sino_notificacoes.php'; ?>
</body>
</html>