<?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 converter caminho relativo em URL absoluta
function converterParaUrlAbsoluta($caminhoRelativo) {
    // Se já for uma URL completa, retorna como está
    if (filter_var($caminhoRelativo, FILTER_VALIDATE_URL)) {
        return $caminhoRelativo;
    }
    
    // Determinar a URL base do sistema
    $protocolo = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
    $host = $_SERVER['HTTP_HOST'];
    
    // Se o caminho começar com /, usar como está
    if (strpos($caminhoRelativo, '/') === 0) {
        return $protocolo . "://" . $host . $caminhoRelativo;
    }
    
    // Caso contrário, adicionar ao diretório base
    $diretorioBase = dirname($_SERVER['PHP_SELF']);
    return $protocolo . "://" . $host . $diretorioBase . '/' . $caminhoRelativo;
}

// 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;
    }
}

// Função para gerar assinatura HTML
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 - CORREÇÃO: Usar URL absoluta
    if (!empty($logo)) {
        // Converter caminho relativo para URL absoluta
        $logoUrl = converterParaUrlAbsoluta($logo);
        
        $assinatura .= "    <div style='margin-bottom: 15px;'>\n";
        $assinatura .= "        <img src='{$logoUrl}' 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;
}

// Função para aplicar assinatura ao conteúdo do e-mail
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
function substituirVariaveisEmail($conteudo, $clienteId, $conn, $tenantId) {
    try {
        // Carregar dados completos do cliente
        $stmt = $conn->prepare("
            SELECT 
                c.*,
                f.nome as nome_funil,
                ef.nome as nome_etapa,
                u_resp.nome as nome_responsavel,
                u_resp.email as email_responsavel,
                u_cad.nome as nome_usuario_cadastro,
                t.nome as nome_tenant
            FROM clientes c
            LEFT JOIN funis f ON c.funil_id = f.id AND f.tenant_id = ?
            LEFT JOIN etapas_funis ef ON c.etapa_funil_id = ef.id
            LEFT JOIN usuarios u_resp ON c.responsavel = u_resp.id
            LEFT JOIN usuarios u_cad ON c.usuario_cadastro = u_cad.id
            LEFT JOIN tenants t ON c.tenant_id = t.id
            WHERE c.id = ? AND c.tenant_id = ?
        ");
        $stmt->bind_param("iii", $tenantId, $clienteId, $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        
        if ($result->num_rows === 0) {
            return $conteudo; // Retorna conteúdo original se cliente não encontrado
        }
        
        $cliente = $result->fetch_assoc();
        $stmt->close();
        
        // Dados básicos do cliente
        $substituicoes = [
            '{cliente_id}' => $cliente['id'],
            '{cliente_nome}' => $cliente['Nome_Cliente'] ?? '',
            '{nome_cliente}' => $cliente['Nome_Cliente'] ?? '',
            '{cliente_email}' => $cliente['Email'] ?? '',
            '{email_cliente}' => $cliente['Email'] ?? '',
            '{cliente_telefone}' => $cliente['Telefone'] ?? '',
            '{telefone_cliente}' => $cliente['Telefone'] ?? '',
            '{cliente_telefone2}' => $cliente['Telefone2'] ?? '',
            '{telefone2_cliente}' => $cliente['Telefone2'] ?? '',
            '{cliente_celular}' => $cliente['Celular'] ?? '',
            '{celular_cliente}' => $cliente['Celular'] ?? '',
            
            // Endereço
            '{cliente_endereco}' => $cliente['Endereco'] ?? '',
            '{endereco_cliente}' => $cliente['Endereco'] ?? '',
            '{cliente_cidade}' => $cliente['Cidade'] ?? '',
            '{cidade_cliente}' => $cliente['Cidade'] ?? '',
            '{cliente_bairro}' => $cliente['Bairro'] ?? '',
            '{bairro_cliente}' => $cliente['Bairro'] ?? '',
            '{cliente_complemento}' => $cliente['Complemento'] ?? '',
            '{complemento_cliente}' => $cliente['Complemento'] ?? '',
            '{cliente_cep}' => $cliente['CEP'] ?? '',
            '{cep_cliente}' => $cliente['CEP'] ?? '',
            '{cliente_estado}' => $cliente['Estado'] ?? '',
            '{estado_cliente}' => $cliente['Estado'] ?? '',
            '{cliente_provincia}' => $cliente['provincia'] ?? '',
            '{provincia_cliente}' => $cliente['provincia'] ?? '',
            '{cliente_pais}' => $cliente['Pais'] ?? '',
            '{pais_cliente}' => $cliente['Pais'] ?? '',
            
            // Documentos
            '{cliente_cpf_cnpj}' => $cliente['CPF_CNPJ'] ?? '',
            '{cpf_cnpj_cliente}' => $cliente['CPF_CNPJ'] ?? '',
            '{cliente_origem}' => $cliente['Origem'] ?? '',
            '{origem_cliente}' => $cliente['Origem'] ?? '',
            
            // Redes sociais
            '{cliente_instagram}' => $cliente['instagram'] ?? '',
            '{instagram_cliente}' => $cliente['instagram'] ?? '',
            '{cliente_linkedin}' => $cliente['linkedin'] ?? '',
            '{linkedin_cliente}' => $cliente['linkedin'] ?? '',
            
            // Funil e responsáveis
            '{cliente_funil}' => $cliente['nome_funil'] ?? '',
            '{funil_cliente}' => $cliente['nome_funil'] ?? '',
            '{cliente_etapa}' => $cliente['nome_etapa'] ?? '',
            '{etapa_cliente}' => $cliente['nome_etapa'] ?? '',
            '{cliente_responsavel}' => $cliente['nome_responsavel'] ?? '',
            '{responsavel_cliente}' => $cliente['nome_responsavel'] ?? '',
            '{cliente_observacoes}' => $cliente['Observacoes'] ?? '',
            '{observacoes_cliente}' => $cliente['Observacoes'] ?? '',
            
            // Datas
            '{data_cadastro}' => date('d/m/Y', strtotime($cliente['Data_Cadastro'])),
            '{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'),
            
            // Sistema e tenant
            '{url_sistema}' => 'https://' . $_SERVER['HTTP_HOST'],
            '{sistema_nome}' => 'SON',
            '{tenant_nome}' => $cliente['nome_tenant'] ?? '',
            
            // Responsáveis
            '{responsavel_nome}' => $cliente['nome_responsavel'] ?? '',
            '{responsavel_email}' => $cliente['email_responsavel'] ?? '',
            '{usuario_cadastro}' => $cliente['nome_usuario_cadastro'] ?? ''
        ];
        
        // Aplicar substituições
        return str_replace(
            array_keys($substituicoes),
            array_values($substituicoes),
            $conteudo
        );
        
    } catch (Exception $e) {
        error_log("Erro ao substituir variáveis: " . $e->getMessage());
        return $conteudo; // Retorna conteúdo original em caso de erro
    }
}

// CORREÇÃO: Função para carregar template SEM aplicar assinatura
function carregarTemplate($conn, $templateId, $tenantId) {
    try {
        // 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 assunto, conteudo, incluir_assinatura FROM templates_email WHERE id = ? AND tenant_id = ? AND ativo = 1");
        } else {
            $stmt = $conn->prepare("SELECT assunto, conteudo, 1 as incluir_assinatura FROM templates_email WHERE id = ? AND tenant_id = ? AND ativo = 1");
        }
        
        $stmt->bind_param("ii", $templateId, $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        
        if ($result->num_rows > 0) {
            $template = $result->fetch_assoc();
            
            // IMPORTANTE: NÃO aplicar assinatura aqui - apenas retornar a configuração
            // A assinatura será aplicada no momento do envio para garantir dados atualizados
            return [
                'success' => true,
                'assunto' => $template['assunto'],
                'mensagem' => $template['conteudo'], // Retorna conteúdo ORIGINAL sem assinatura
                'incluir_assinatura' => $template['incluir_assinatura']
            ];
        } else {
            return ['success' => false, 'message' => 'Template não encontrado'];
        }
        
        $stmt->close();
    } catch (Exception $e) {
        error_log("Erro ao carregar template: " . $e->getMessage());
        return ['success' => false, 'message' => 'Erro ao carregar template'];
    }
}

// Função para carregar clientes do usuário logado
function carregarClientesUsuario($conn, $usuarioId, $tenantId) {
    try {
        $stmt = $conn->prepare("
            SELECT DISTINCT c.id, c.Nome_Cliente, c.Email 
            FROM clientes c 
            WHERE c.tenant_id = ? 
            AND c.responsavel = ?
            AND c.deletado_em IS NULL
            AND c.Email IS NOT NULL
            AND c.Email != ''
            ORDER BY c.Nome_Cliente
        ");
        $stmt->bind_param("ii", $tenantId, $usuarioId);
        $stmt->execute();
        $result = $stmt->get_result();
        
        $clientes = [];
        while ($row = $result->fetch_assoc()) {
            $clientes[] = $row;
        }
        
        $stmt->close();
        return $clientes;
        
    } catch (Exception $e) {
        error_log("Erro ao carregar clientes: " . $e->getMessage());
        return [];
    }
}

// Função para carregar templates de e-mail
function carregarTemplatesEmail($conn, $tenantId) {
    try {
        // 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, incluir_assinatura 
                FROM templates_email 
                WHERE tenant_id = ? 
                AND ativo = 1
                ORDER BY nome
            ");
        } else {
            $stmt = $conn->prepare("
                SELECT id, nome, assunto, conteudo, 1 as incluir_assinatura 
                FROM templates_email 
                WHERE tenant_id = ? 
                AND ativo = 1
                ORDER BY nome
            ");
        }
        
        $stmt->bind_param("i", $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        
        $templates = [];
        while ($row = $result->fetch_assoc()) {
            $templates[] = $row;
        }
        
        $stmt->close();
        return $templates;
        
    } catch (Exception $e) {
        error_log("Erro ao carregar templates: " . $e->getMessage());
        return [];
    }
}

// Função para registrar log de e-mail enviado
function registrarLogEmail($conn, $clienteId, $usuarioId, $nomeUsuario, $assunto, $destinatario, $mensagem, $tenantId) {
    try {
        $acao = "email_enviado";
        
        // Limitar o tamanho da mensagem para evitar problemas com campos muito longos
        $mensagemLog = $mensagem;
        if (strlen($mensagemLog) > 1000) {
            $mensagemLog = substr($mensagemLog, 0, 1000) . "... [mensagem truncada]";
        }
        
        $detalhes = "E-mail enviado para o cliente.\nAssunto: \"$assunto\"\nDestinatário: $destinatario\n\nConteúdo:\n$mensagemLog";
        
        $stmt = $conn->prepare("
            INSERT INTO cliente_logs 
            (cliente_id, usuario_id, nome_usuario, acao, detalhes, tenant_id, observacao_id) 
            VALUES (?, ?, ?, ?, ?, ?, 0)
        ");
        $stmt->bind_param("iissss", $clienteId, $usuarioId, $nomeUsuario, $acao, $detalhes, $tenantId);
        $result = $stmt->execute();
        $stmt->close();
        
        return $result;
        
    } catch (Exception $e) {
        error_log("Erro ao registrar log de e-mail: " . $e->getMessage());
        return false;
    }
}

// Função para enviar e-mail
function enviarEmail($destinatario, $assunto, $mensagem, $remetente_email, $remetente_nome) {
    try {
        // Configurar headers
        $headers = "From: $remetente_nome <$remetente_email>\r\n";
        $headers .= "Reply-To: $remetente_email\r\n";
        $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
        $headers .= "MIME-Version: 1.0\r\n";
        
        // Enviar e-mail
        $enviado = mail($destinatario, $assunto, $mensagem, $headers);
        
        return $enviado;
        
    } catch (Exception $e) {
        return false;
    }
}

// Função para carregar configurações de e-mail DO USUÁRIO LOGADO
function carregarConfiguracoesEmail($conn, $tenantId, $usuarioId) {
    try {
        // Buscar dados do usuário e tenant para criar remetente personalizado
        $stmt = $conn->prepare("
            SELECT u.nome as usuario_nome, u.email as usuario_email, t.nome as tenant_nome 
            FROM usuarios u 
            LEFT JOIN tenants t ON u.tenant_id = t.id 
            WHERE u.id = ? AND u.tenant_id = ?
        ");
        $stmt->bind_param("ii", $usuarioId, $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        
        if ($result->num_rows > 0) {
            $dados = $result->fetch_assoc();
            $stmt->close();
            
            // Criar configuração com remetente personalizado: "Nome Usuário - Nome Tenant"
            $remetenteNome = $dados['usuario_nome'] . ' - ' . $dados['tenant_nome'];
            $remetenteEmail = $dados['usuario_email'];
            
            $configuracoes = [
                'servidor_smtp' => 'smtp.gmail.com',
                'porta_smtp' => 587,
                'usuario_smtp' => $remetenteEmail,
                'senha_smtp' => '', // Senha deve ser configurada pelo usuário
                'criptografia' => 'tls',
                'email_remetente' => $remetenteEmail,
                'nome_remetente' => $remetenteNome
            ];
            
            return $configuracoes;
        }
        
        $stmt->close();
        return null;
        
    } catch (Exception $e) {
        error_log("Erro ao carregar configurações de e-mail: " . $e->getMessage());
        return null;
    }
}

// Carregar dados do usuário logado
$usuarioId = (int) $_SESSION['usuario_id'];
$tenantId = (int) $_SESSION['tenant_id'];
$nomeUsuario = $_SESSION['nome_usuario'] ?? 'Usuário';

// Carregar dados para assinatura
$dadosAssinatura = carregarDadosAssinatura($conn, $tenantId, $usuarioId);
$assinatura = $dadosAssinatura ? gerarAssinatura($dadosAssinatura) : '';

// Carregar clientes e templates
$clientes = carregarClientesUsuario($conn, $usuarioId, $tenantId);
$templates = carregarTemplatesEmail($conn, $tenantId);

// Processar envio de e-mail
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao'])) {
    
    if ($_POST['acao'] === 'enviar_email') {
        // Validar CSRF token
        if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
            $_SESSION['mensagem'] = "Token de segurança inválido";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        // Obter dados do formulário
        $clienteId = (int) ($_POST['cliente_id'] ?? 0);
        $destinatario = trim($_POST['destinatario'] ?? '');
        $assunto = trim($_POST['assunto'] ?? '');
        $mensagem = trim($_POST['mensagem'] ?? '');
        $incluirAssinatura = isset($_POST['incluir_assinatura']);
        $templateId = isset($_POST['template_id']) ? (int)$_POST['template_id'] : 0;
        
        // Validações
        if ($clienteId === 0) {
            $_SESSION['mensagem'] = "Selecione um cliente da lista";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        // Verificar se o cliente pertence ao usuário logado
        $clienteValido = false;
        $clienteSelecionado = null;
        foreach ($clientes as $cliente) {
            if ($cliente['id'] == $clienteId) {
                $clienteValido = true;
                $clienteSelecionado = $cliente;
                // Usar o e-mail do cliente selecionado
                $destinatario = $cliente['Email'];
                break;
            }
        }
        
        if (!$clienteValido) {
            $_SESSION['mensagem'] = "Cliente selecionado não é válido ou não pertence ao seu acesso";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        if (empty($destinatario) || !filter_var($destinatario, FILTER_VALIDATE_EMAIL)) {
            $_SESSION['mensagem'] = "E-mail do destinatário é obrigatório e deve ser válido";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        if (empty($assunto)) {
            $_SESSION['mensagem'] = "Assunto é obrigatório";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        if (empty($mensagem)) {
            $_SESSION['mensagem'] = "Mensagem é obrigatória";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        // Carregar configurações de e-mail DO USUÁRIO LOGADO
        $configuracoes = carregarConfiguracoesEmail($conn, $tenantId, $usuarioId);
        
        if (!$configuracoes) {
            $_SESSION['mensagem'] = "Não foi possível carregar as configurações de e-mail.";
            $_SESSION['mensagem_tipo'] = 'erro';
            header("Location: enviar_email.php");
            exit();
        }
        
        // CORREÇÃO: Verificar configuração de assinatura do template
        $templateIncluirAssinatura = false;
        if ($templateId > 0) {
            $templateInfo = carregarTemplate($conn, $templateId, $tenantId);
            if ($templateInfo['success']) {
                $templateIncluirAssinatura = $templateInfo['incluir_assinatura'];
            }
        }
        
        // Preparar mensagem final
        $mensagemFinal = nl2br(htmlspecialchars($mensagem));
        
        // APLICAR SUBSTITUIÇÃO DE VARIÁVEIS NA MENSAGEM
        $mensagemFinal = substituirVariaveisEmail($mensagemFinal, $clienteId, $conn, $tenantId);
        
        // CORREÇÃO: Aplicar assinatura se necessário
        // Se estiver usando template E template configurado para incluir assinatura, OU se marcou manualmente
        $deveIncluirAssinatura = $incluirAssinatura || $templateIncluirAssinatura;
        
        if ($deveIncluirAssinatura && !empty($assinatura)) {
            $mensagemFinal = aplicarAssinatura($mensagemFinal, $assinatura);
        }
        
        // APLICAR SUBSTITUIÇÃO DE VARIÁVEIS NO ASSUNTO
        $assuntoFinal = substituirVariaveisEmail($assunto, $clienteId, $conn, $tenantId);
        
        // Enviar e-mail
        $enviado = enviarEmail(
            $destinatario,
            $assuntoFinal, // Usar assunto com variáveis substituídas
            $mensagemFinal,
            $configuracoes['email_remetente'],
            $configuracoes['nome_remetente'] // Será "Nome Usuário - Nome Tenant"
        );
        
        if ($enviado) {
            // Registrar log do e-mail enviado
            $logRegistrado = registrarLogEmail(
                $conn, 
                $clienteId, 
                $usuarioId, 
                $nomeUsuario, 
                $assuntoFinal, // Usar assunto final no log
                $destinatario,
                $mensagemFinal,
                $_SESSION['tenant_id']
            );
            
            $infoAssinatura = $deveIncluirAssinatura ? " com assinatura" : " sem assinatura";
            $_SESSION['mensagem'] = "E-mail enviado com sucesso para $destinatario!{$infoAssinatura}" . ($logRegistrado ? " Log registrado." : "");
            $_SESSION['mensagem_tipo'] = 'sucesso';
            
            // Log do envio em arquivo
            $logFile = 'logs/email_envios.log';
            $dataHora = date('Y-m-d H:i:s');
            $logMessage = "[$dataHora] [Usuário: $nomeUsuario] [Cliente ID: $clienteId] [Para: $destinatario] [Assunto: $assuntoFinal] [Remetente: {$configuracoes['nome_remetente']} <{$configuracoes['email_remetente']}>] [Assinatura: " . ($deveIncluirAssinatura ? 'Sim' : 'Não') . "] [Template: " . ($templateId > 0 ? 'Sim' : 'Não') . "] Enviado com sucesso\n";
            
            if (!file_exists('logs')) mkdir('logs', 0755, true);
            file_put_contents($logFile, $logMessage, FILE_APPEND);
            
        } else {
            $_SESSION['mensagem'] = "Erro ao enviar e-mail. Verifique as configurações do servidor SMTP.";
            $_SESSION['mensagem_tipo'] = 'erro';
        }
        
        header("Location: enviar_email.php");
        exit();
    }
}

// Processar carregamento de template
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao']) && $_POST['acao'] === 'carregar_template') {
    $templateId = (int) ($_POST['template_id'] ?? 0);
    
    if ($templateId > 0) {
        // CORREÇÃO: Usar a nova função que não aplica assinatura
        $resultado = carregarTemplate($conn, $templateId, $tenantId);
        echo json_encode($resultado);
        exit();
    }
}

// Carregar configurações para exibir informações
$configuracoes = carregarConfiguracoesEmail($conn, $_SESSION['tenant_id'], $_SESSION['usuario_id']);

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

// Gerar um ID único para este usuário/sessão para o localStorage
$storageKey = 'email_draft_' . md5($_SESSION['usuario_id'] . '_' . session_id());
?>
<!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 - Enviar E-mail</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;
            overflow-x: hidden;
        }
        
        .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: 40px;
            margin-right: 20px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
            color: #333;
        }
        
        .header-content {
            display: flex;
            align-items: center;
            width: 100%;
            justify-content: space-between;
        }
        
        .logo-section {
            display: flex;
            align-items: center;
            gap: 20px;
        }
        
        .user-info {
            display: flex;
            align-items: center;
            gap: 15px;
            color: #333;
            font-weight: bold;
        }
        
        .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;
        }
        
        .main-content {
            margin-left: 60px;
            padding: 30px;
            transition: margin-left 0.3s ease;
            position: relative;
            z-index: 1;
            background-color: #f5f5f5;
            min-height: calc(10vh - 1px);
            margin-top: 1px;
        }
        
        .form-container {
            background: white;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            max-width: 800px;
            margin: 0 auto;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 8px;
            font-weight: bold;
            color: #333;
        }
        
        .form-group input, .form-group textarea, .form-group select {
            width: 100%;
            padding: 12px;
            border: 1px solid #ddd;
            border-radius: 6px;
            box-sizing: border-box;
            font-size: 14px;
            transition: border-color 0.3s;
        }
        
        .form-group input:focus, .form-group textarea:focus, .form-group select:focus {
            border-color: #007bff;
            outline: none;
            box-shadow: 0 0 0 2px rgba(0,123,255,0.25);
        }
        
        .form-group textarea {
            height: 200px;
            resize: vertical;
            font-family: Arial, sans-serif;
        }
        
        .btn {
            padding: 12px 24px;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-weight: bold;
            margin-right: 10px;
            transition: all 0.3s;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        
        .btn-primary {
            background-color: #007bff;
            color: white;
        }
        
        .btn-primary:hover {
            background-color: #0056b3;
        }
        
        .btn-secondary {
            background-color: #6c757d;
            color: white;
        }
        
        .btn-secondary:hover {
            background-color: #545b62;
        }
        
        .btn-info {
            background-color: #17a2b8;
            color: white;
        }
        
        .btn-info:hover {
            background-color: #138496;
        }
        
        .btn-success {
            background-color: #28a745;
            color: white;
        }
        
        .btn-success:hover {
            background-color: #218838;
        }
        
        .form-actions {
            margin-top: 30px;
            text-align: center;
        }
        
        .required::after {
            content: " *";
            color: red;
        }
        
        .config-info {
            background: #e7f3ff;
            border-left: 4px solid #007bff;
            padding: 15px;
            margin-bottom: 25px;
            border-radius: 6px;
        }
        
        .config-info h4 {
            margin-top: 0;
            color: #0056b3;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .config-details {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 10px;
            margin-top: 10px;
        }
        
        .config-item {
            display: flex;
            flex-direction: column;
        }
        
        .config-label {
            font-size: 0.8em;
            color: #666;
            margin-bottom: 2px;
        }
        
        .config-value {
            font-weight: bold;
            color: #333;
        }
        
        .alert {
            padding: 15px;
            margin-bottom: 25px;
            border: 1px solid transparent;
            border-radius: 6px;
        }
        
        .alert-success {
            color: #155724;
            background-color: #d4edda;
            border-color: #c3e6cb;
        }
        
        .alert-error {
            color: #721c24;
            background-color: #f8d7da;
            border-color: #f5c6cb;
        }
        
        .no-config {
            background: #fff3cd;
            border-left: 4px solid #ffc107;
            padding: 20px;
            margin-bottom: 25px;
            border-radius: 6px;
        }
        
        .no-config h4 {
            margin-top: 0;
            color: #856404;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .client-count {
            background: #007bff;
            color: white;
            padding: 2px 8px;
            border-radius: 12px;
            font-size: 0.8em;
            margin-left: 8px;
        }
        
        .no-clients {
            background: #fff3cd;
            border-left: 4px solid #ffc107;
            padding: 20px;
            margin-bottom: 25px;
            border-radius: 6px;
        }
        
        .no-clients h4 {
            margin-top: 0;
            color: #856404;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .template-section {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 6px;
            padding: 20px;
            margin-bottom: 25px;
        }
        
        .template-section h4 {
            margin-top: 0;
            color: #495057;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .template-actions {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-top: 15px;
        }
        
        .template-btn {
            background-color: #6f42c1;
            color: white;
            border: none;
            padding: 8px 16px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 14px;
            display: inline-flex;
            align-items: center;
            gap: 5px;
            transition: background-color 0.3s;
        }
        
        .template-btn:hover {
            background-color: #5a32a3;
        }
        
        .template-btn.active {
            background-color: #4a1e91;
            border: 2px solid #3a146f;
        }
        
        .template-select {
            flex-grow: 1;
            min-width: 200px;
        }
        
        .template-info {
            background: #e7f3ff;
            border: 1px solid #b3d4fc;
            border-radius: 4px;
            padding: 10px;
            margin-top: 10px;
            font-size: 0.9em;
            color: #0066cc;
        }
        
        .assinatura-section {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 6px;
            padding: 20px;
            margin-bottom: 25px;
        }
        
        .assinatura-section h4 {
            margin-top: 0;
            color: #495057;
            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;
        }
        
        .checkbox-group {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-top: 15px;
        }
        
        .checkbox-group input[type="checkbox"] {
            width: auto;
        }
        
        .assinatura-info {
            color: #6c757d;
            font-size: 0.9em;
            margin-top: 10px;
        }
        
        @media (max-width: 768px) {
            .sidebar {
                width: 0;
            }
            
            .sidebar:hover {
                width: 200px;
            }
            
            .main-content {
                margin-left: 0;
                padding: 80px 15px 15px 15px;
                margin-top: 70px;
            }
            
            .config-details {
                grid-template-columns: 1fr;
            }
            
            .btn {
                margin-bottom: 10px;
                width: 100%;
                justify-content: center;
            }
            
            .form-actions {
                display: flex;
                flex-direction: column;
                gap: 10px;
            }
            
            .header-content {
                flex-direction: column;
                gap: 10px;
            }
            
            .logo-section {
                justify-content: center;
                width: 100%;
            }
            
            .user-info {
                justify-content: center;
                width: 100%;
            }
            
            .template-actions {
                flex-direction: column;
            }
            
            .template-select {
                min-width: 100%;
            }
        }
    </style>
</head>
<body>

<div class="header-fixed">
    <div class="header-content">
        <div class="logo-section">
            <img src="/favicon_io/favicon-32x32.png" alt="SON Logo" style="height: 40px; width: auto; margin-right: 20px;">
            <h2>Sistema SON - Enviar E-mail</h2>
        </div>
        <div class="user-info">
            <span>Olá, <?php echo htmlspecialchars($nomeUsuario); ?></span>
        </div>
    </div>
</div>

<?php include 'menu_lateral.php'; ?>
    
<div class="main-content">
    <div class="form-container">
        <h2 style="text-align: center; margin-bottom: 25px; color: #333;">
            <i class="fas fa-paper-plane"></i> Enviar E-mail
            <?php if (!empty($clientes)): ?>
                <span class="client-count"><?php echo count($clientes); ?> cliente(s)</span>
            <?php endif; ?>
        </h2>
        
        <!-- Exibir mensagem de sucesso/erro -->
        <?php if (isset($_SESSION['mensagem'])): ?>
            <div class="alert <?php echo ($_SESSION['mensagem_tipo'] ?? '') === 'sucesso' ? 'alert-success' : 'alert-error'; ?>" id="mensagem-alert">
                <strong><?php echo ($_SESSION['mensagem_tipo'] ?? '') === 'sucesso' ? 'Sucesso!' : 'Erro!'; ?></strong>
                <?php echo htmlspecialchars($_SESSION['mensagem']); ?>
                <button type="button" style="float: right; background: none; border: none; font-size: 16px; cursor: pointer;" onclick="document.getElementById('mensagem-alert').style.display='none'">×</button>
            </div>
            
            <script>
                setTimeout(function() {
                    var alertDiv = document.getElementById('mensagem-alert');
                    if (alertDiv) {
                        alertDiv.style.display = 'none';
                    }
                }, 5000);
            </script>
            
            <?php 
            unset($_SESSION['mensagem']);
            unset($_SESSION['mensagem_tipo']);
            ?>
        <?php endif; ?>
        
        <!-- Verificar se existem clientes -->
        <?php if (empty($clientes)): ?>
            <div class="no-clients">
                <h4><i class="fas fa-exclamation-triangle"></i> Nenhum Cliente Disponível</h4>
                <p>Você não possui clientes cadastrados com e-mail válido onde você é o responsável.</p>
                <a href="cadastro_cliente.php" class="btn btn-primary" style="margin-top: 10px;">
                    <i class="fas fa-plus"></i> Cadastrar Cliente
                </a>
                <a href="clientes.php" class="btn btn-info" style="margin-top: 10px;">
                    <i class="fas fa-users"></i> Ver Meus Clientes
                </a>
            </div>
        <?php endif; ?>
        
        <!-- Informações do Remetente -->
        <?php if ($configuracoes): ?>
            <div class="config-info">
                <h4><i class="fas fa-cog"></i> Configuração do Remetente</h4>
                <p>O e-mail será enviado com as seguintes informações:</p>
                <div class="config-details">
                    <div class="config-item">
                        <span class="config-label">Nome do Remetente:</span>
                        <span class="config-value"><?php echo htmlspecialchars($configuracoes['nome_remetente']); ?></span>
                    </div>
                    <div class="config-item">
                        <span class="config-label">E-mail do Remetente:</span>
                        <span class="config-value"><?php echo htmlspecialchars($configuracoes['email_remetente']); ?></span>
                    </div>
                </div>
                <small style="color: #666; margin-top: 10px; display: block;">
                    <i class="fas fa-info-circle"></i> O remetente é automaticamente configurado como "Seu Nome - Nome da Empresa"
                </small>
            </div>
        <?php else: ?>
            <div class="no-config">
                <h4><i class="fas fa-exclamation-triangle"></i> Configuração Necessária</h4>
                <p>Não foi possível carregar as configurações de e-mail. Verifique se você possui um e-mail cadastrado no sistema.</p>
            </div>
        <?php endif; ?>
        
        <form method="POST" action="" id="formEnviarEmail" <?php echo (!$configuracoes || empty($clientes)) ? 'style="display: none;"' : ''; ?>>
            <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
            <input type="hidden" name="acao" value="enviar_email">
            <input type="hidden" name="template_id" id="template_id" value="">
            
            <!-- Seção de Assinatura -->
            <?php if (!empty($assinatura)): ?>
            <div class="assinatura-section">
                <h4><i class="fas fa-signature"></i> Assinatura de E-mail</h4>
                <p>Sua assinatura personalizada será incluída no final do e-mail.</p>
                
<div class="assinatura-preview">
    <?php 
    // Renderizar o HTML da assinatura corretamente
    if (!empty($assinatura)) {
        // Se a assinatura já é HTML (da coluna assinatura_email), exibir diretamente
        if (strpos($assinatura, '<div') !== false || strpos($assinatura, '<img') !== false) {
            echo $assinatura;
        } else {
            // Se for texto simples, converter para HTML
            echo nl2br(htmlspecialchars($assinatura));
        }
    } else {
        echo '<em style="color: #999;">Nenhuma assinatura configurada</em>';
    }
    ?>
</div>
                
                <div class="checkbox-group">
                    <input type="checkbox" id="incluir_assinatura" name="incluir_assinatura" value="1" checked>
                    <label for="incluir_assinatura" style="font-weight: bold; color: #333;">
                        Incluir assinatura no e-mail
                    </label>
                </div>
                
                <div class="assinatura-info">
                    <i class="fas fa-info-circle"></i> 
                    A assinatura inclui o logo da empresa e seus dados de contato.
                    <?php if (!empty($dadosAssinatura['tenant']['logo_path'])): ?>
                    <br><small>Logo: <?php echo converterParaUrlAbsoluta($dadosAssinatura['tenant']['logo_path']); ?></small>
                    <?php endif; ?>
                    <a href="editar_assinatura.php" style="margin-left: 10px; color: #007bff;">
                        <i class="fas fa-edit"></i> Editar assinatura
                    </a>
                </div>
            </div>
            <?php endif; ?>
            
            <!-- Seção de Templates -->
            <?php if (!empty($templates)): ?>
            <div class="template-section">
                <h4><i class="fas fa-file-alt"></i> Usar Template</h4>
                <p>Escolha um template pronto ou escreva seu e-mail do zero:</p>
                
                <div class="template-actions">
                    <button type="button" class="template-btn active" id="btnNovoEmail" onclick="selecionarModo('novo')">
                        <i class="fas fa-edit"></i> Escrever do Zero
                    </button>
                    <button type="button" class="template-btn" id="btnUsarTemplate" onclick="selecionarModo('template')">
                        <i class="fas fa-file-alt"></i> Usar Template
                    </button>
                    
                    <select class="template-select" id="selectTemplate" onchange="carregarTemplate()" style="display: none;">
                        <option value="">-- Selecione um template --</option>
                        <?php foreach ($templates as $template): ?>
                            <option value="<?php echo $template['id']; ?>" data-assinatura="<?php echo $template['incluir_assinatura'] ? 'sim' : 'nao'; ?>">
                                <?php echo htmlspecialchars($template['nome']); ?>
                                <?php if ($template['incluir_assinatura']): ?>
                                    (com assinatura)
                                <?php endif; ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="template-info" id="templateInfo" style="display: none;">
                    <i class="fas fa-info-circle"></i>
                    <span id="templateInfoText">Este template inclui assinatura automaticamente.</span>
                </div>
            </div>
            <?php endif; ?>
            
            <div class="form-group">
                <label for="cliente_id" class="required">Selecionar Cliente</label>
                <select id="cliente_id" name="cliente_id" required onchange="atualizarEmailDestinatario()">
                    <option value="">-- Selecione um cliente --</option>
                    <?php foreach ($clientes as $cliente): ?>
                        <option value="<?php echo $cliente['id']; ?>" data-email="<?php echo htmlspecialchars($cliente['Email']); ?>">
                            <?php echo htmlspecialchars($cliente['Nome_Cliente']); ?> - <?php echo htmlspecialchars($cliente['Email']); ?>
                        </option>
                    <?php endforeach; ?>
                </select>
                <small style="color: #666; font-size: 0.8em;">
                    Apenas clientes onde você é o responsável são exibidos.
                </small>
            </div>
            
            <div class="form-group">
                <label for="destinatario" class="required">E-mail do Destinatário</label>
                <input type="email" id="destinatario" name="destinatario" 
                       placeholder="O e-mail será preenchido automaticamente" readonly
                       style="background-color: #f8f9fa; cursor: not-allowed;">
                <small style="color: #666; font-size: 0.8em;">
                    Este campo é preenchido automaticamente com o e-mail do cliente selecionado.
                </small>
            </div>
            
            <div class="form-group">
                <label for="assunto" class="required">Assunto</label>
                <input type="text" id="assunto" name="assunto" 
                       placeholder="ex: Proposta Comercial" required>
            </div>
            
            <div class="form-group">
                <label for="mensagem" class="required">Mensagem</label>
                <textarea id="mensagem" name="mensagem" 
                          placeholder="Digite sua mensagem aqui..." required></textarea>
                <small style="color: #666; font-size: 0.8em;">
                    A mensagem será enviada em formato HTML. Quebras de linha serão preservadas.
                </small>
            </div>
            
            <div class="form-actions">
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-paper-plane"></i> Enviar E-mail
                </button>
               
                <button type="button" class="btn btn-secondary" onclick="limparFormulario()">
                    <i class="fas fa-broom"></i> Limpar
                </button>
                
                <a href="templates_email.php" class="btn btn-success">
                    <i class="fas fa-file-alt"></i> Gerenciar Templates
                </a>
            </div>
        </form>
    </div>
</div>

<script>
    // Chave única para este usuário/sessão no localStorage
    const storageKey = '<?php echo $storageKey; ?>';
    let modoAtual = 'novo'; // 'novo' ou 'template'
    let templateAtualId = 0;
    
    function atualizarEmailDestinatario() {
        const selectCliente = document.getElementById('cliente_id');
        const inputEmail = document.getElementById('destinatario');
        const selectedOption = selectCliente.options[selectCliente.selectedIndex];
        
        if (selectedOption.value !== '') {
            inputEmail.value = selectedOption.getAttribute('data-email');
        } else {
            inputEmail.value = '';
        }
    }

    function selecionarModo(modo) {
        modoAtual = modo;
        const btnNovo = document.getElementById('btnNovoEmail');
        const btnTemplate = document.getElementById('btnUsarTemplate');
        const selectTemplate = document.getElementById('selectTemplate');
        const templateInfo = document.getElementById('templateInfo');
        
        if (modo === 'novo') {
            btnNovo.classList.add('active');
            btnTemplate.classList.remove('active');
            selectTemplate.style.display = 'none';
            templateInfo.style.display = 'none';
            templateAtualId = 0;
            document.getElementById('template_id').value = '';
            
            // Limpar campos se estiverem preenchidos com template
            if (document.getElementById('assunto').value || document.getElementById('mensagem').value) {
                Swal.fire({
                    title: 'Limpar formulário?',
                    text: 'Os dados atuais serão perdidos.',
                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                    confirmButtonText: 'Sim, limpar!',
                    cancelButtonText: 'Cancelar'
                }).then((result) => {
                    if (result.isConfirmed) {
                        document.getElementById('assunto').value = '';
                        document.getElementById('mensagem').value = '';
                        document.getElementById('incluir_assinatura').checked = true;
                        localStorage.removeItem(storageKey + '_assunto');
                        localStorage.removeItem(storageKey + '_mensagem');
                    }
                });
            }
        } else {
            btnNovo.classList.remove('active');
            btnTemplate.classList.add('active');
            selectTemplate.style.display = 'inline-block';
            templateInfo.style.display = 'block';
        }
    }

    function carregarTemplate() {
        const selectTemplate = document.getElementById('selectTemplate');
        const templateId = selectTemplate.value;
        const templateInfo = document.getElementById('templateInfo');
        const templateInfoText = document.getElementById('templateInfoText');
        
        if (!templateId) {
            templateInfo.style.display = 'none';
            templateAtualId = 0;
            document.getElementById('template_id').value = '';
            return;
        }
        
        templateAtualId = templateId;
        document.getElementById('template_id').value = templateId;
        
        // Mostrar info do template selecionado
        const selectedOption = selectTemplate.options[selectTemplate.selectedIndex];
        const temAssinatura = selectedOption.getAttribute('data-assinatura') === 'sim';
        
        if (temAssinatura) {
            templateInfoText.textContent = 'Este template inclui assinatura automaticamente. A assinatura será aplicada no envio.';
            templateInfo.style.display = 'block';
        } else {
            templateInfoText.textContent = 'Este template não inclui assinatura automaticamente. Marque o checkbox acima se desejar adicionar assinatura.';
            templateInfo.style.display = 'block';
        }
        
        // Mostrar loading
        const btnEnviar = document.querySelector('button[type="submit"]');
        const originalText = btnEnviar.innerHTML;
        btnEnviar.disabled = true;
        btnEnviar.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Carregando...';
        
        // Fazer requisição AJAX para carregar o template
        const formData = new FormData();
        formData.append('acao', 'carregar_template');
        formData.append('template_id', templateId);
        formData.append('csrf_token', '<?php echo $_SESSION['csrf_token']; ?>');
        
        fetch('enviar_email.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                document.getElementById('assunto').value = data.assunto;
                document.getElementById('mensagem').value = data.mensagem;
                
                // Atualizar informações sobre assinatura
                if (data.incluir_assinatura) {
                    templateInfoText.textContent = 'Este template está configurado para incluir assinatura automaticamente.';
                } else {
                    templateInfoText.textContent = 'Este template não inclui assinatura automaticamente. Marque o checkbox acima se desejar adicionar assinatura.';
                }
                
                // Salvar no localStorage
                localStorage.setItem(storageKey + '_assunto', data.assunto);
                localStorage.setItem(storageKey + '_mensagem', data.mensagem);
                
                Swal.fire({
                    icon: 'success',
                    title: 'Template carregado!',
                    text: 'O template foi carregado com sucesso.',
                    timer: 2000,
                    showConfirmButton: false
                });
            } else {
                Swal.fire({
                    icon: 'error',
                    title: 'Erro',
                    text: data.message || 'Erro ao carregar template'
                });
            }
        })
        .catch(error => {
            console.error('Erro:', error);
            Swal.fire({
                icon: 'error',
                title: 'Erro',
                text: 'Erro ao carregar template'
            });
        })
        .finally(() => {
            btnEnviar.disabled = false;
            btnEnviar.innerHTML = originalText;
        });
    }

    document.addEventListener('DOMContentLoaded', function() {
        // Validação do formulário
        document.getElementById('formEnviarEmail').addEventListener('submit', function(e) {
            let isValid = true;
            const mensagens = [];
            
            // Validar cliente selecionado
            const clienteId = document.getElementById('cliente_id').value;
            if (!clienteId || clienteId === '') {
                mensagens.push('Por favor, selecione um cliente da lista.');
                isValid = false;
            }
            
            // Validar destinatário
            const destinatario = document.getElementById('destinatario').value.trim();
            if (!destinatario) {
                mensagens.push('E-mail do destinatário não encontrado. Selecione um cliente válido.');
                isValid = false;
            } else if (!isValidEmail(destinatario)) {
                mensagens.push('O e-mail do cliente selecionado não é válido.');
                isValid = false;
            }
            
            // Validar assunto
            const assunto = document.getElementById('assunto').value.trim();
            if (!assunto) {
                mensagens.push('Por favor, preencha o assunto do e-mail.');
                isValid = false;
            }
            
            // Validar mensagem
            const mensagem = document.getElementById('mensagem').value.trim();
            if (!mensagem) {
                mensagens.push('Por favor, preencha a mensagem do e-mail.');
                isValid = false;
            }
            
            if (!isValid) {
                e.preventDefault();
                Swal.fire({
                    icon: 'error',
                    title: 'Erro de Validação',
                    html: mensagens.join('<br>')
                });
            } else {
                // Mostrar loading antes de enviar
                const btnEnviar = this.querySelector('button[type="submit"]');
                btnEnviar.disabled = true;
                btnEnviar.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Enviando...';
                
                // Limpar rascunho após envio bem-sucedido
                localStorage.removeItem(storageKey + '_assunto');
                localStorage.removeItem(storageKey + '_mensagem');
            }
        });
        
        // Função para validar e-mail
        function isValidEmail(email) {
            const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            return re.test(email);
        }
        
        // Auto-salvar rascunho no localStorage com chave única por usuário
        const form = document.getElementById('formEnviarEmail');
        if (form) {
            const inputs = form.querySelectorAll('#assunto, #mensagem');
            
            // Carregar rascunho salvo (apenas para este usuário)
            inputs.forEach(input => {
                const savedValue = localStorage.getItem(storageKey + '_' + input.name);
                if (savedValue) {
                    input.value = savedValue;
                }
            });
            
            // Salvar rascunho ao digitar (apenas para este usuário)
            inputs.forEach(input => {
                input.addEventListener('input', function() {
                    localStorage.setItem(storageKey + '_' + this.name, this.value);
                });
            });
        }
        
        // Mostrar/ocultar info do template quando selecionado
        const selectTemplate = document.getElementById('selectTemplate');
        if (selectTemplate) {
            selectTemplate.addEventListener('change', function() {
                const templateInfo = document.getElementById('templateInfo');
                if (this.value) {
                    templateInfo.style.display = 'block';
                } else {
                    templateInfo.style.display = 'none';
                    templateAtualId = 0;
                    document.getElementById('template_id').value = '';
                }
            });
        }
    });
    
    // Função para limpar formulário
    function limparFormulario() {
        Swal.fire({
            title: 'Limpar formulário?',
            text: 'Todos os dados não enviados serão perdidos.',
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Sim, limpar!',
            cancelButtonText: 'Cancelar'
        }).then((result) => {
            if (result.isConfirmed) {
                document.getElementById('cliente_id').value = '';
                document.getElementById('destinatario').value = '';
                document.getElementById('assunto').value = '';
                document.getElementById('mensagem').value = '';
                document.getElementById('selectTemplate').value = '';
                document.getElementById('template_id').value = '';
                document.getElementById('incluir_assinatura').checked = true;
                document.getElementById('templateInfo').style.display = 'none';
                templateAtualId = 0;
                
                // Limpar localStorage apenas para este usuário
                localStorage.removeItem(storageKey + '_assunto');
                localStorage.removeItem(storageKey + '_mensagem');
                
                // Voltar para modo "escrever do zero"
                selecionarModo('novo');
                
                Swal.fire(
                    'Limpo!',
                    'O formulário foi limpo com sucesso.',
                    'success'
                );
            }
        });
    }
</script>
</body>
</html>