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

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

// Verifica o token CSRF
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    $_SESSION['erro'] = 'Token CSRF inválido';
    header('Location: calendario.php');
    exit;
}

$tenant_id = $_SESSION['tenant_id'];
$usuario_id = $_SESSION['usuario_id'];

// FUNÇÃO DE ENVIO DE E-MAIL
function enviarEmailNotificacao($destinatario, $assunto, $mensagem, $tenant_id) {
    // Configurações de e-mail por tenant
    $configs = [
        1 => [
            'from_email' => 'sistema@empresa1.com',
            'from_name' => 'Sistema Empresa 1'
        ],
        2 => [
            'from_email' => 'sistema@empresa2.com',
            'from_name' => 'Sistema Empresa 2'
        ]
    ];
    
    $config = $configs[$tenant_id] ?? [
        'from_email' => 'sistema@son.com',
        'from_name' => 'SON Sistema'
    ];
    
    $headers = "From: {$config['from_name']} <{$config['from_email']}>\r\n";
    $headers .= "Reply-To: {$config['from_email']}\r\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    
    error_log("Tentando enviar e-mail para: $destinatario - Assunto: $assunto");
    
    return mail($destinatario, $assunto, $mensagem, $headers);
}

// FUNÇÃO PARA CRIAR TEMPLATE DE E-MAIL
function criarTemplateNotificacao($atividade, $tipo = 'nova') {
    $dataHora = date('d/m/Y H:i', strtotime($atividade['data_agendada']));
    
    $templates = [
        'nova' => "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; margin: 20px; }
                    .container { max-width: 600px; margin: 0 auto; border: 1px solid #ddd; border-radius: 8px; padding: 20px; }
                    .header { background: #e3f2fd; padding: 15px; border-radius: 5px; margin-bottom: 20px; }
                    .info { margin: 10px 0; }
                    .btn { display: inline-block; padding: 10px 20px; background: #007bff; color: white; text-decoration: none; border-radius: 4px; }
                </style>
            </head>
            <body>
                <div class='container'>
                    <div class='header'>
                        <h2>📅 Nova Atividade Criada</h2>
                    </div>
                    <div class='info'><strong>📋 Atividade:</strong> {$atividade['nome']}</div>
                    <div class='info'><strong>📅 Data/Hora:</strong> $dataHora</div>
                    " . ($atividade['descricao'] ? "<div class='info'><strong>📝 Descrição:</strong> {$atividade['descricao']}</div>" : "") . "
                    " . ($atividade['Nome_Cliente'] ? "<div class='info'><strong>👤 Cliente:</strong> {$atividade['Nome_Cliente']}</div>" : "") . "
                    " . ($atividade['tipo_atividade'] ? "<div class='info'><strong>📊 Tipo de Atividade:</strong> {$atividade['tipo_atividade']}</div>" : "") . "
                    <div class='info'><strong>👨‍💼 Responsável:</strong> {$atividade['usuario_nome']}</div>
                    <br>
                    <a href='https://son.tvitecnologia.com.br/calendario.php' class='btn'>📅 Acessar Calendário</a>
                </div>
            </body>
            </html>
        "
    ];
    
    return $templates[$tipo] ?? $templates['nova'];
}

// Coletar dados do formulário
$nome = $_POST['nome'] ?? '';
$descricao = $_POST['descricao'] ?? '';
$data_agendada = $_POST['data_agendada'] ?? '';
$hora = $_POST['hora'] ?? '';
$notificacao_minutos_antes = $_POST['notificar'] ?? 0;
$cliente_id = $_POST['cliente_id'] ?? null;
$lista_atividade_id = $_POST['lista_atividade_id'] ?? null;
$enviar_email = $_POST['enviar_email'] ?? 0; // Nova flag para envio de e-mail

// Validações básicas
if (empty($nome) || empty($data_agendada) || empty($hora)) {
    $_SESSION['erro'] = 'Nome, data e hora são obrigatórios';
    header('Location: calendario.php');
    exit;
}

// Combinar data e hora
$data_hora = $data_agendada . ' ' . $hora . ':00';

// Validar data/hora
if (strtotime($data_hora) === false) {
    $_SESSION['erro'] = 'Data/hora inválida';
    header('Location: calendario.php');
    exit;
}

// Converter para NULL se estiver vazio
if ($cliente_id === '') {
    $cliente_id = null;
}
if ($lista_atividade_id === '') {
    $lista_atividade_id = null;
}

// Inserir no banco de dados
$sql = "INSERT INTO atividades (nome, descricao, data_agendada, notificacao_minutos_antes, cliente_id, lista_atividade_id, usuario_id, tenant_id, ativo, concluida) 
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1, 0)";

$stmt = $conn->prepare($sql);
$stmt->bind_param("sssiiiii", $nome, $descricao, $data_hora, $notificacao_minutos_antes, $cliente_id, $lista_atividade_id, $usuario_id, $tenant_id);

if ($stmt->execute()) {
    $nova_atividade_id = $stmt->insert_id;
    
    // Enviar e-mail se solicitado
    if ($enviar_email) {
        // Buscar dados completos da atividade recém-criada
        $sql_dados = "SELECT a.*, u.email, u.nome as usuario_nome, c.Nome_Cliente, la.nome as tipo_atividade
                     FROM atividades a 
                     LEFT JOIN usuarios u ON a.usuario_id = u.id 
                     LEFT JOIN clientes c ON a.cliente_id = c.id 
                     LEFT JOIN lista_atividades la ON a.lista_atividade_id = la.id
                     WHERE a.id = ?";
        
        $stmt_dados = $conn->prepare($sql_dados);
        $stmt_dados->bind_param("i", $nova_atividade_id);
        $stmt_dados->execute();
        $atividade = $stmt_dados->get_result()->fetch_assoc();
        $stmt_dados->close();
        
        if ($atividade && !empty($atividade['email'])) {
            $assunto = "📅 Nova Atividade: " . $atividade['nome'];
            $mensagem = criarTemplateNotificacao($atividade, 'nova');
            $enviado = enviarEmailNotificacao($atividade['email'], $assunto, $mensagem, $tenant_id);
            
            if ($enviado) {
                error_log("E-mail de nova atividade enviado para ID: $nova_atividade_id");
                $_SESSION['sucesso'] = 'Atividade criada com sucesso! E-mail enviado.';
            } else {
                error_log("Falha ao enviar e-mail de nova atividade para ID: $nova_atividade_id");
                $_SESSION['sucesso'] = 'Atividade criada com sucesso, mas houve um erro ao enviar o e-mail.';
            }
        } else {
            $_SESSION['sucesso'] = 'Atividade criada com sucesso!';
            error_log("Usuário sem e-mail cadastrado para nova atividade ID: $nova_atividade_id");
        }
    } else {
        $_SESSION['sucesso'] = 'Atividade criada com sucesso!';
    }
    
} else {
    $_SESSION['erro'] = 'Erro ao criar atividade: ' . $conn->error;
    error_log("Erro ao criar atividade: " . $conn->error);
}

$stmt->close();
$conn->close();

header('Location: calendario.php');
exit;
?>