<?php
// templates_email.php
session_start();

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

require_once 'conexao.php';

// Verificar permissões do usuário atual
$permissao = $_SESSION['permissao'] ?? 'usuario';
$is_admin = ($permissao === 'admin' || $permissao === 'super_admin');

if (!$is_admin) {
    header('Location: acesso_negado.php');
    exit;
}

// FUNÇÕES DE ASSINATURA - INCORPORADAS DO enviar_email.php
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;
    }
}

function gerarAssinatura($dadosAssinatura) {
    if (!$dadosAssinatura) return '';
    
    $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'] ?? '';
    
    // Se o usuário tem uma assinatura personalizada, usar ela
    if (!empty($dadosAssinatura['usuario']['assinatura_email'])) {
        return $dadosAssinatura['usuario']['assinatura_email'];
    }
    
    // Senão, gerar assinatura padrão
    $assinatura = "\n\n<div style='margin-top: 30px; padding-top: 20px; border-top: 2px solid #007bff; font-family: Arial, sans-serif; color: #333;'>\n";
    
    // Logo do tenant
    if (!empty($logo)) {
        $assinatura .= "    <div style='margin-bottom: 15px;'>\n";
        $assinatura .= "        <img src='{$logo}' alt='{$nomeTenant}' style='max-height: 50px; max-width: 200px;' />\n";
        $assinatura .= "    </div>\n";
    }
    
    // Dados do usuário
    $assinatura .= "    <div style='line-height: 1.6;'>\n";
    $assinatura .= "        <strong>{$nomeUsuario}</strong>\n";
    
    if (!empty($cargoUsuario)) {
        $assinatura .= "        <br>{$cargoUsuario}\n";
    }
    
    if (!empty($nomeTenant)) {
        $assinatura .= "        <br>{$nomeTenant}\n";
    }
    
    if (!empty($emailUsuario)) {
        $assinatura .= "        <br>E-mail: <a href='mailto:{$emailUsuario}' style='color: #007bff; text-decoration: none;'>{$emailUsuario}</a>\n";
    }
    
    if (!empty($telefoneUsuario)) {
        $assinatura .= "        <br>Telefone: {$telefoneUsuario}\n";
    }
    
    $assinatura .= "    </div>\n";
    $assinatura .= "</div>";
    
    return $assinatura;
}

function aplicarAssinatura($conteudo, $assinatura) {
    if (empty($assinatura)) {
        return $conteudo;
    }
    
    // Adicionar assinatura no final
    return $conteudo . $assinatura;
}

// Função para substituir variáveis no conteúdo do e-mail (para preview)
function substituirVariaveisPreview($conteudo) {
    $substituicoes = [
        '{cliente_id}' => '[ID do Cliente]',
        '{cliente_nome}' => '[Nome do Cliente]',
        '{nome_cliente}' => '[Nome do Cliente]',
        '{cliente_email}' => '[email@cliente.com]',
        '{email_cliente}' => '[email@cliente.com]',
        '{cliente_telefone}' => '[Telefone]',
        '{telefone_cliente}' => '[Telefone]',
        '{cliente_telefone2}' => '[Telefone 2]',
        '{telefone2_cliente}' => '[Telefone 2]',
        '{cliente_celular}' => '[Celular]',
        '{celular_cliente}' => '[Celular]',
        '{cliente_endereco}' => '[Endereço]',
        '{endereco_cliente}' => '[Endereço]',
        '{cliente_cidade}' => '[Cidade]',
        '{cidade_cliente}' => '[Cidade]',
        '{cliente_bairro}' => '[Bairro]',
        '{bairro_cliente}' => '[Bairro]',
        '{cliente_complemento}' => '[Complemento]',
        '{complemento_cliente}' => '[Complemento]',
        '{cliente_cep}' => '[CEP]',
        '{cep_cliente}' => '[CEP]',
        '{cliente_estado}' => '[Estado]',
        '{estado_cliente}' => '[Estado]',
        '{cliente_provincia}' => '[Província]',
        '{provincia_cliente}' => '[Província]',
        '{cliente_pais}' => '[País]',
        '{pais_cliente}' => '[País]',
        '{cliente_cpf_cnpj}' => '[CPF/CNPJ]',
        '{cpf_cnpj_cliente}' => '[CPF/CNPJ]',
        '{cliente_origem}' => '[Origem]',
        '{origem_cliente}' => '[Origem]',
        '{cliente_instagram}' => '[Instagram]',
        '{instagram_cliente}' => '[Instagram]',
        '{cliente_linkedin}' => '[LinkedIn]',
        '{linkedin_cliente}' => '[LinkedIn]',
        '{cliente_funil}' => '[Funil]',
        '{funil_cliente}' => '[Funil]',
        '{cliente_etapa}' => '[Etapa]',
        '{etapa_cliente}' => '[Etapa]',
        '{cliente_responsavel}' => '[Responsável]',
        '{responsavel_cliente}' => '[Responsável]',
        '{cliente_observacoes}' => '[Observações]',
        '{observacoes_cliente}' => '[Observações]',
        '{data_cadastro}' => date('d/m/Y'),
        '{data_atual}' => date('d/m/Y'),
        '{data}' => date('d/m/Y'),
        '{hora_atual}' => date('H:i:s'),
        '{hora}' => date('H:i:s'),
        '{data_hora}' => date('d/m/Y H:i:s'),
        '{url_sistema}' => 'https://' . $_SERVER['HTTP_HOST'],
        '{sistema_nome}' => 'SON',
        '{tenant_nome}' => '[Nome da Empresa]',
        '{responsavel_nome}' => '[Nome do Responsável]',
        '{responsavel_email}' => '[email@responsavel.com]',
        '{usuario_cadastro}' => '[Usuário Cadastro]'
    ];
    
    return str_replace(
        array_keys($substituicoes),
        array_values($substituicoes),
        $conteudo
    );
}

// Carregar dados da assinatura para o usuário logado
$dadosAssinatura = carregarDadosAssinatura($conn, $_SESSION['tenant_id'], $_SESSION['usuario_id']);
$assinatura = $dadosAssinatura ? gerarAssinatura($dadosAssinatura) : '';

// Funções utilitárias
function registrarLog($acao, $detalhes = '') {
    $arquivoLog = 'logs/email_acoes.log';
    $dataHora = date('Y-m-d H:i:s');
    $usuario = $_SESSION['usuario_id'] ?? 'Sistema';
    $ip = $_SERVER['REMOTE_ADDR'] ?? 'IP desconhecido';
    $mensagem = "[$dataHora] [Usuário: $usuario] [IP: $ip] [Ação: $acao] $detalhes\n";

    if (!file_exists('logs')) mkdir('logs', 0755, true);
    file_put_contents($arquivoLog, $mensagem, FILE_APPEND);
}

// Criar CSRF token se não existir
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// Variáveis para o formulário
$template = [
    'id' => '',
    'nome' => '',
    'assunto' => '',
    'conteudo' => '',
    'tipo' => 'automacao',
    'ativo' => 1,
    'incluir_assinatura' => 1
];
$editando = false;

// Processamento do formulário
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
            throw new Exception("Token de segurança inválido");
        }

        $tenantId = (int) $_SESSION['tenant_id'];
        $userId = (int) $_SESSION['usuario_id'];
        
        $nome = trim($_POST['nome'] ?? '');
        $assunto = trim($_POST['assunto'] ?? '');
        $conteudo = trim($_POST['conteudo'] ?? '');
        $tipo = $_POST['tipo'] ?? 'automacao';
        $ativo = isset($_POST['ativo']) ? 1 : 0;
        $incluirAssinatura = isset($_POST['incluir_assinatura']) ? 1 : 0;
        $templateId = $_POST['template_id'] ?? '';

        if (empty($nome) || empty($assunto) || empty($conteudo)) {
            throw new Exception("Todos os campos obrigatórios devem ser preenchidos");
        }

        // IMPORTANTE: NÃO aplicar assinatura aqui - vamos salvar apenas a configuração
        // A assinatura será aplicada no momento do envio do email
        $conteudoFinal = $conteudo; // Salvar o conteúdo SEM assinatura

        // Verificar se a tabela tem a coluna incluir_assinatura
        $checkColumn = $conn->query("SHOW COLUMNS FROM templates_email LIKE 'incluir_assinatura'");
        $hasAssinaturaColumn = $checkColumn->num_rows > 0;

        if (!$hasAssinaturaColumn) {
            // Criar a coluna se não existir
            $conn->query("ALTER TABLE templates_email ADD COLUMN incluir_assinatura TINYINT(1) DEFAULT 1");
            $hasAssinaturaColumn = true;
        }

        if ($templateId && is_numeric($templateId)) {
            // Edição de template existente
            if ($hasAssinaturaColumn) {
                $stmt = $conn->prepare("UPDATE templates_email SET nome = ?, assunto = ?, conteudo = ?, tipo = ?, ativo = ?, incluir_assinatura = ?, atualizado_em = NOW() WHERE id = ? AND tenant_id = ?");
                $stmt->bind_param("ssssiiii", $nome, $assunto, $conteudoFinal, $tipo, $ativo, $incluirAssinatura, $templateId, $tenantId);
            } else {
                $stmt = $conn->prepare("UPDATE templates_email SET nome = ?, assunto = ?, conteudo = ?, tipo = ?, ativo = ?, atualizado_em = NOW() WHERE id = ? AND tenant_id = ?");
                $stmt->bind_param("ssssiii", $nome, $assunto, $conteudoFinal, $tipo, $ativo, $templateId, $tenantId);
            }
            
            if ($stmt->execute()) {
                registrarLog('Edição de Template de Email', "Template ID: $templateId, Nome: $nome, Assinatura: " . ($incluirAssinatura ? 'Sim' : 'Não'));
                $_SESSION['mensagem'] = 'Template atualizado com sucesso!' . ($incluirAssinatura ? ' Assinatura será incluída nos envios.' : '');
                $_SESSION['mensagem_tipo'] = 'sucesso';
            } else {
                throw new Exception("Erro ao atualizar template: " . $stmt->error);
            }
        } else {
            // Novo template
            if ($hasAssinaturaColumn) {
                $stmt = $conn->prepare("INSERT INTO templates_email (tenant_id, nome, assunto, conteudo, tipo, ativo, incluir_assinatura, criado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
                $stmt->bind_param("issssiii", $tenantId, $nome, $assunto, $conteudoFinal, $tipo, $ativo, $incluirAssinatura, $userId);
            } else {
                $stmt = $conn->prepare("INSERT INTO templates_email (tenant_id, nome, assunto, conteudo, tipo, ativo, criado_por) VALUES (?, ?, ?, ?, ?, ?, ?)");
                $stmt->bind_param("issssii", $tenantId, $nome, $assunto, $conteudoFinal, $tipo, $ativo, $userId);
            }
            
            if ($stmt->execute()) {
                $novoId = $stmt->insert_id;
                registrarLog('Criação de Template de Email', "Template ID: $novoId, Nome: $nome, Assinatura: " . ($incluirAssinatura ? 'Sim' : 'Não'));
                $_SESSION['mensagem'] = 'Template criado com sucesso!' . ($incluirAssinatura ? ' Assinatura será incluída nos envios.' : '');
                $_SESSION['mensagem_tipo'] = 'sucesso';
            } else {
                throw new Exception("Erro ao criar template: " . $stmt->error);
            }
        }

        header("Location: templates_email.php");
        exit;

    } catch (Exception $e) {
        $_SESSION['mensagem'] = $e->getMessage();
        $_SESSION['mensagem_tipo'] = 'erro';
        
        // Preencher dados do formulário em caso de erro
        $template = [
            'id' => $_POST['template_id'] ?? '',
            'nome' => $_POST['nome'] ?? '',
            'assunto' => $_POST['assunto'] ?? '',
            'conteudo' => $_POST['conteudo'] ?? '',
            'tipo' => $_POST['tipo'] ?? 'automacao',
            'ativo' => isset($_POST['ativo']) ? 1 : 0,
            'incluir_assinatura' => isset($_POST['incluir_assinatura']) ? 1 : 0
        ];
        $editando = (bool)($template['id']);
    }
}

// Carregar template para edição
if (isset($_GET['editar']) && is_numeric($_GET['editar'])) {
    $templateId = (int)$_GET['editar'];
    $tenantId = (int)$_SESSION['tenant_id'];
    
    // Verificar se a coluna incluir_assinatura existe
    $checkColumn = $conn->query("SHOW COLUMNS FROM templates_email LIKE 'incluir_assinatura'");
    $hasAssinaturaColumn = $checkColumn->num_rows > 0;
    
    if ($hasAssinaturaColumn) {
        $stmt = $conn->prepare("SELECT id, nome, assunto, conteudo, tipo, ativo, incluir_assinatura FROM templates_email WHERE id = ? AND tenant_id = ?");
    } else {
        $stmt = $conn->prepare("SELECT id, nome, assunto, conteudo, tipo, ativo, 1 as incluir_assinatura FROM templates_email WHERE id = ? AND tenant_id = ?");
    }
    
    $stmt->bind_param("ii", $templateId, $tenantId);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows > 0) {
        $template = $result->fetch_assoc();
        $editando = true;
    } else {
        $_SESSION['mensagem'] = 'Template não encontrado!';
        $_SESSION['mensagem_tipo'] = 'erro';
        header("Location: templates_email.php");
        exit;
    }
}

// Buscar templates existentes
$tenantId = (int)$_SESSION['tenant_id'];

// Verificar se a coluna incluir_assinatura existe
$checkColumn = $conn->query("SHOW COLUMNS FROM templates_email LIKE 'incluir_assinatura'");
$hasAssinaturaColumn = $checkColumn->num_rows > 0;

if ($hasAssinaturaColumn) {
    $stmt = $conn->prepare("SELECT id, nome, assunto, tipo, ativo, incluir_assinatura, criado_em FROM templates_email WHERE tenant_id = ? ORDER BY nome");
} else {
    $stmt = $conn->prepare("SELECT id, nome, assunto, tipo, ativo, 1 as incluir_assinatura, criado_em FROM templates_email WHERE tenant_id = ? ORDER BY nome");
}

$stmt->bind_param("i", $tenantId);
$stmt->execute();
$templates = $stmt->get_result();
?>

<!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><?php echo $editando ? 'Editar' : 'Criar'; ?> Template de Email - SON</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;
        }
        
        .main-content {
            margin-top: 10px;
            padding: 20px;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: white;
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);
        }
        
        h1 {
            color: #333;
            border-bottom: 1px solid #eee;
            padding-bottom: 10px;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
        }
        
        .form-group input, 
        .form-group select, 
        .form-group textarea {
            width: 100%;
            padding: 10px;
            margin-top: 5px;
            border: 1px solid #ddd;
            border-radius: 4px;
            box-sizing: border-box;
            font-size: 16px;
        }
        
        .form-group textarea {
            min-height: 300px;
            resize: vertical;
            font-family: monospace;
        }
        
        .checkbox-group {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 10px;
        }
        
        .checkbox-group input[type="checkbox"] {
            width: auto;
        }
        
        button {
            background-color: rgb(76, 175, 175);
            color: white;
            padding: 12px 20px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            margin-top: 20px;
            font-size: 16px;
            transition: background-color 0.3s;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        
        button:hover {
            background-color: rgb(60, 150, 150);
        }
        
        .required:after {
            content: " *";
            color: red;
        }
        
        .mensagem-flutuante {
            position: fixed;
            top: 80px;
            right: 20px;
            padding: 15px 25px;
            border-radius: 4px;
            color: white;
            z-index: 2000;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .mensagem-sucesso {
            background-color: #2ecc71;
        }
        
        .mensagem-erro {
            background-color: #e74c3c;
        }
        
        .templates-list {
            margin-top: 30px;
        }
        
        .template-item {
            border: 1px solid #ddd;
            border-radius: 4px;
            padding: 15px;
            margin-bottom: 10px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .template-info h3 {
            margin: 0 0 5px 0;
            color: #333;
        }
        
        .template-meta {
            color: #666;
            font-size: 0.9em;
        }
        
        .template-actions {
            display: flex;
            gap: 10px;
        }
        
        .btn-editar {
            background-color: #3498db;
            color: white;
            padding: 8px 12px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 5px;
        }
        
        .btn-excluir {
            background-color: #e74c3c;
            color: white;
            padding: 8px 12px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 5px;
        }
        
        .status-ativo {
            color: #2ecc71;
            font-weight: bold;
        }
        
        .status-inativo {
            color: #e74c3c;
            font-weight: bold;
        }
        
        .variáveis-info {
            background-color: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 4px;
            padding: 15px;
            margin-bottom: 20px;
        }
        
        .variáveis-info h3 {
            margin-top: 0;
            color: #333;
        }
        
        .variavel-item {
            display: inline-block;
            background-color: #e9ecef;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: monospace;
            margin: 2px;
            font-size: 0.9em;
        }
        
        .assinatura-section {
            background-color: #f0f8ff;
            border: 1px solid #007bff;
            border-radius: 4px;
            padding: 15px;
            margin-bottom: 20px;
        }
        
        .assinatura-section h3 {
            margin-top: 0;
            color: #007bff;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .assinatura-preview {
            background: white;
            border: 1px solid #dee2e6;
            border-radius: 4px;
            padding: 15px;
            margin-top: 15px;
            max-height: 200px;
            overflow-y: auto;
            font-size: 14px;
        }
        
        .assinatura-info {
            color: #6c757d;
            font-size: 0.9em;
            margin-top: 10px;
        }
        
        .preview-info {
            background-color: #fff3cd;
            border: 1px solid #ffeaa7;
            border-radius: 4px;
            padding: 10px;
            margin-top: 10px;
            font-size: 0.9em;
            color: #856404;
        }
        
        .preview-section {
            background-color: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 4px;
            padding: 15px;
            margin-top: 15px;
        }
        
        .preview-content {
            background: white;
            border: 1px solid #dee2e6;
            border-radius: 4px;
            padding: 15px;
            margin-top: 10px;
            max-height: 300px;
            overflow-y: auto;
            font-size: 14px;
            line-height: 1.5;
        }
                .sidebar {
            position: fixed;
            left: 0;
            top: 70px;
            height: calc(100vh - 70px);
            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:hover {
            width: 250px;
        }
        
        .sidebar ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        
        .sidebar li {
            padding: 0;
            margin: 0;
        }
        
        .sidebar a {
            display: flex;
            align-items: center;
            padding: 15px 20px;
            text-decoration: none;
            color: #333;
            white-space: nowrap;
        }
        
        .sidebar a:hover {
            background-color: #f0f0f0;
        }
        
        .sidebar i {
            margin-right: 15px;
            min-width: 20px;
            text-align: center;
        }
        
        .sidebar span {
            display: none;
        }
        
        .sidebar:hover span {
            display: inline;
        }
    </style>
</head>
<body>
  <div class="header-fixed">
    <img src="tvitec.png" alt="Logo TVITEC" style="height:40px; margin-right: 15px;">

    <div class="user-info" style="display:flex; align-items:center; gap:10px;">
      <?php if (!empty($_SESSION['foto_perfil'])): ?>
        <img src="<?php echo htmlspecialchars($_SESSION['foto_perfil']); ?>" class="user-photo" alt="Foto do usuário" style="width:40px; height:40px; border-radius:50%;">
      <?php else: ?>
        <div class="user-initial" style="width:40px; height:40px; border-radius:50%; background:#ccc; display:flex; align-items:center; justify-content:center; font-weight:bold; font-size:1.2em;">
          <?php echo strtoupper(substr($_SESSION['nome_usuario'] ?? 'U', 0, 1)); ?>
        </div>
      <?php endif; ?>
      <div style="text-align:left;">
        <div style="font-weight: bold; color: #333; font-size: 1.1em;">
          <?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário'); ?>
        </div>
        <div style="font-size: 0.9em; color: #555;">
          <?php echo htmlspecialchars($_SESSION['email_usuario'] ?? ''); ?>
        </div>
      </div>
    </div>
  </div>

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

    <div class="main-content">
        <div class="container">
            <?php if (isset($_SESSION['mensagem'])): ?>
                <div class="mensagem-flutuante <?php echo $_SESSION['mensagem_tipo'] === 'erro' ? 'mensagem-erro' : 'mensagem-sucesso'; ?>">
                    <?php echo htmlspecialchars($_SESSION['mensagem']); ?>
                    <button onclick="this.parentElement.style.display='none'" style="background:none; border:none; color:white; cursor:pointer; margin-left:10px;">×</button>
                </div>
                <?php 
                unset($_SESSION['mensagem']);
                unset($_SESSION['mensagem_tipo']);
                ?>
            <?php endif; ?>

            <h1><i class="fas fa-envelope"></i> <?php echo $editando ? 'Editar Template de Email' : 'Criar Template de Email'; ?></h1>
            
            <!-- Seção de Assinatura -->
            <?php if (!empty($assinatura)): ?>
            <div class="assinatura-section">
                <h3><i class="fas fa-signature"></i> Configuração de Assinatura</h3>
                <p>Configure como a assinatura será incluída nos emails enviados usando este template.</p>
                
                <div class="assinatura-preview">
                    <strong>Preview da sua assinatura:</strong><br>
                    <?php echo $assinatura; ?>
                </div>
                
                <div class="checkbox-group">
                    <input type="checkbox" id="incluir_assinatura" name="incluir_assinatura" value="1" <?= $template['incluir_assinatura'] ? 'checked' : '' ?>>
                    <label for="incluir_assinatura" style="font-weight: bold; color: #333;">
                        Incluir assinatura automaticamente nos emails enviados com este template
                    </label>
                </div>
                
                <div class="preview-info">
                    <i class="fas fa-info-circle"></i> 
                    <strong>Importante:</strong> A assinatura será aplicada dinamicamente no momento do envio do email, 
                    não no conteúdo salvo do template. Isso garante que a assinatura sempre use os dados mais recentes do usuário.
                </div>
                
                <div class="assinatura-info">
                    <i class="fas fa-cog"></i> 
                    A assinatura é gerada automaticamente com seus dados atuais.
                    <?php if (isset($_SESSION['usuario_id'])): ?>
                    <a href="editar_assinatura.php" style="margin-left: 10px; color: #007bff;">
                        <i class="fas fa-edit"></i> Editar assinatura pessoal
                    </a>
                    <?php endif; ?>
                </div>
            </div>
            <?php endif; ?>
            
            <div class="variáveis-info">
                <h3><i class="fas fa-info-circle"></i> Variáveis Disponíveis</h3>
                <p>Use as seguintes variáveis no conteúdo do template. Elas serão substituídas automaticamente no momento do envio:</p>
                <div>
                    <span class="variavel-item">{nome_cliente}</span>
                    <span class="variavel-item">{email_cliente}</span>
                    <span class="variavel-item">{telefone_cliente}</span>
                    <span class="variavel-item">{cliente_id}</span>
                    <span class="variavel-item">{cliente_nome}</span>
                    <span class="variavel-item">{cliente_email}</span>
                    <span class="variavel-item">{cliente_telefone}</span>
                    <span class="variavel-item">{cliente_celular}</span>
                    <span class="variavel-item">{cliente_endereco}</span>
                    <span class="variavel-item">{cliente_cidade}</span>
                    <span class="variavel-item">{cliente_estado}</span>
                    <span class="variavel-item">{cliente_cep}</span>
                    <span class="variavel-item">{cliente_cpf_cnpj}</span>
                    <span class="variavel-item">{data_atual}</span>
                    <span class="variavel-item">{data_hora}</span>
                    <span class="variavel-item">{url_sistema}</span>
                    <span class="variavel-item">{sistema_nome}</span>
                    <span class="variavel-item">{tenant_nome}</span>
                    <span class="variavel-item">{responsavel_nome}</span>
                    <span class="variavel-item">{responsavel_email}</span>
                </div>
                <p style="margin-top: 10px; font-size: 0.9em; color: #666;">
                    <strong>Dica:</strong> As variáveis funcionam tanto no assunto quanto no conteúdo do email.
                </p>
            </div>
            
            <form method="POST">
                <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">
                <input type="hidden" name="template_id" value="<?= $template['id'] ?>">
                
                <div class="form-group">
                    <label for="nome" class="required">Nome do Template</label>
                    <input type="text" name="nome" id="nome" required value="<?= htmlspecialchars($template['nome']) ?>">
                </div>
                
                <div class="form-group">
                    <label for="assunto" class="required">Assunto do Email</label>
                    <input type="text" name="assunto" id="assunto" required value="<?= htmlspecialchars($template['assunto']) ?>">
                    <small>Use variáveis como {nome_cliente} no assunto também.</small>
                </div>
                
                <div class="form-group">
                    <label for="tipo">Tipo de Template</label>
                    <select name="tipo" id="tipo">
                        <option value="automacao" <?= $template['tipo'] === 'automacao' ? 'selected' : '' ?>>Automação</option>
                        <option value="marketing" <?= $template['tipo'] === 'marketing' ? 'selected' : '' ?>>Marketing</option>
                        <option value="notificacao" <?= $template['tipo'] === 'notificacao' ? 'selected' : '' ?>>Notificação</option>
                    </select>
                </div>
                
                <div class="form-group">
                    <label for="conteudo" class="required">Conteúdo do Email</label>
                    <textarea name="conteudo" id="conteudo" required placeholder="Digite o conteúdo do email. Use HTML para formatação e variáveis como {nome_cliente}."><?= htmlspecialchars($template['conteudo']) ?></textarea>
                    <small>Dica: Use HTML para criar emails formatados. As variáveis serão substituídas automaticamente.</small>
                </div>
                
                <!-- Preview do Template -->
                <div class="preview-section">
                    <h4><i class="fas fa-eye"></i> Preview do Template</h4>
                    <p>Visualização aproximada de como o template ficará com as variáveis substituídas:</p>
                    <div class="preview-content" id="previewContent">
                        <?php 
                        if (!empty($template['conteudo'])) {
                            echo nl2br(htmlspecialchars(substituirVariaveisPreview($template['conteudo'])));
                        } else {
                            echo '<em style="color: #999;">Digite algum conteúdo para ver o preview...</em>';
                        }
                        ?>
                    </div>
                </div>
                
                <div class="form-group checkbox-group">
                    <input type="checkbox" name="ativo" id="ativo" <?= $template['ativo'] ? 'checked' : '' ?>>
                    <label for="ativo">Template ativo</label>
                </div>
                
                <button type="submit">
                    <i class="fas fa-save"></i> <?php echo $editando ? 'Atualizar Template' : 'Salvar Template'; ?>
                </button>
                
                <a href="templates_email.php" style="margin-left: 15px; text-decoration: none;">
                    <button type="button" style="background-color: #6c757d;">
                        <i class="fas fa-times"></i> Cancelar
                    </button>
                </a>
                
                <?php if ($editando): ?>
                    <a href="templates_email.php" style="margin-left: 15px; text-decoration: none;">
                        <button type="button" style="background-color: #3498db;">
                            <i class="fas fa-plus"></i> Novo Template
                        </button>
                    </a>
                <?php endif; ?>
            </form>
            
            <div class="templates-list">
                <h2><i class="fas fa-list"></i> Templates Existentes</h2>
                
                <?php if ($templates->num_rows > 0): ?>
                    <?php while ($temp = $templates->fetch_assoc()): ?>
                        <div class="template-item">
                            <div class="template-info">
                                <h3><?php echo htmlspecialchars($temp['nome']); ?></h3>
                                <div class="template-meta">
                                    <strong>Assunto:</strong> <?php echo htmlspecialchars($temp['assunto']); ?> | 
                                    <strong>Tipo:</strong> <?php echo ucfirst($temp['tipo']); ?> | 
                                    <strong>Status:</strong> 
                                    <span class="<?php echo $temp['ativo'] ? 'status-ativo' : 'status-inativo'; ?>">
                                        <?php echo $temp['ativo'] ? 'Ativo' : 'Inativo'; ?>
                                    </span>
                                    <?php if ($hasAssinaturaColumn): ?>
                                    | <strong>Assinatura:</strong> 
                                    <span class="<?php echo $temp['incluir_assinatura'] ? 'status-ativo' : 'status-inativo'; ?>">
                                        <?php echo $temp['incluir_assinatura'] ? 'Incluída' : 'Não incluída'; ?>
                                    </span>
                                    <?php endif; ?>
                                    | <strong>Criado em:</strong> <?php echo date('d/m/Y H:i', strtotime($temp['criado_em'])); ?>
                                </div>
                            </div>
                            <div class="template-actions">
                                <a href="templates_email.php?editar=<?php echo $temp['id']; ?>" class="btn-editar">
                                    <i class="fas fa-edit"></i> Editar
                                </a>
                                <button type="button" class="btn-excluir" onclick="confirmarExclusao(<?php echo $temp['id']; ?>, '<?php echo htmlspecialchars($temp['nome']); ?>')">
                                    <i class="fas fa-trash"></i> Excluir
                                </button>
                            </div>
                        </div>
                    <?php endwhile; ?>
                <?php else: ?>
                    <p>Nenhum template criado ainda.</p>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <script>
        function confirmarExclusao(id, nome) {
            Swal.fire({
                title: 'Confirmar Exclusão',
                html: `Tem certeza que deseja excluir o template "<strong>${nome}</strong>"?`,
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#e74c3c',
                cancelButtonColor: '#6c757d',
                confirmButtonText: 'Sim, excluir!',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {
                    window.location.href = `excluir_template.php?id=${id}`;
                }
            });
        }

        // Fechar mensagem flutuante manualmente
        document.addEventListener('click', function(e) {
            if (e.target.classList.contains('mensagem-flutuante') || e.target.parentElement.classList.contains('mensagem-flutuante')) {
                e.target.style.display = 'none';
            }
        });

        // Preview da assinatura quando o checkbox é alterado
        document.addEventListener('DOMContentLoaded', function() {
            const checkboxAssinatura = document.getElementById('incluir_assinatura');
            if (checkboxAssinatura) {
                checkboxAssinatura.addEventListener('change', function() {
                    if (this.checked) {
                        // Feedback visual simples
                        const assinaturaSection = document.querySelector('.assinatura-section');
                        if (assinaturaSection) {
                            assinaturaSection.style.backgroundColor = '#e8f5e8';
                            setTimeout(() => {
                                assinaturaSection.style.backgroundColor = '#f0f8ff';
                            }, 1000);
                        }
                    }
                });
            }

            // Preview em tempo real do template
            const conteudoTextarea = document.getElementById('conteudo');
            const previewContent = document.getElementById('previewContent');
            
            if (conteudoTextarea && previewContent) {
                conteudoTextarea.addEventListener('input', function() {
                    // Simular substituição de variáveis para preview
                    let previewText = this.value;
                    
                    // Substituir variáveis com valores de exemplo
                    const substituicoes = {
                        '{cliente_id}': '[ID do Cliente]',
                        '{nome_cliente}': '[Nome do Cliente]',
                        '{email_cliente}': '[email@cliente.com]',
                        '{telefone_cliente}': '[Telefone]',
                        '{data_atual}': new Date().toLocaleDateString('pt-BR'),
                        '{data_hora}': new Date().toLocaleString('pt-BR'),
                        '{url_sistema}': window.location.origin,
                        '{sistema_nome}': 'SON',
                        '{tenant_nome}': '[Nome da Empresa]'
                    };
                    
                    Object.keys(substituicoes).forEach(variavel => {
                        previewText = previewText.replace(new RegExp(variavel, 'g'), substituicoes[variavel]);
                    });
                    
                    previewContent.innerHTML = nl2br(htmlspecialchars(previewText));
                });
            }
        });

        // Funções auxiliares para o preview
        function nl2br(str) {
            return str.replace(/\n/g, '<br>');
        }

        function htmlspecialchars(str) {
            const div = document.createElement('div');
            div.textContent = str;
            return div.innerHTML;
        }
    </script>
</body>
</html>
<?php
// Fechar conexão
if (isset($conn)) {
    $conn->close();
}
?>