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

if (!isset($_SESSION['logado'])) {
    echo json_encode(['success' => false, 'message' => 'Não autorizado']);
    exit;
}

// Verifica o token CSRF
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    echo json_encode(['success' => false, 'message' => 'Token CSRF inválido']);
    exit;
}

$atividade_id = $_POST['id'] ?? null;
$enviar_email = $_POST['enviar_email'] ?? 0;
$tenant_id = $_SESSION['tenant_id'];
$usuario_id = $_SESSION['usuario_id'];

// FUNÇÃO DE ENVIO DE E-MAIL
function enviarEmailNotificacao($destinatario, $assunto, $mensagem, $tenant_id) {
    $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";
    
    return mail($destinatario, $assunto, $mensagem, $headers);
}

// FUNÇÃO PARA CRIAR TEMPLATE DE E-MAIL
function criarTemplateNotificacao($atividade, $tipo = 'lembrete') {
    $dataHora = date('d/m/Y H:i', strtotime($atividade['data_agendada']));
    
    $templates = [
        'lembrete' => "
            <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: #f8f9fa; 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>✏️ Atividade Alterada</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>" : "") . "
                    <div class='info'><strong>👨‍💼 Responsável:</strong> {$atividade['usuario_nome']}</div>
                    <br>
                    <a href='https://seusite.com/calendario.php' class='btn'>📅 Acessar Calendário</a>
                </div>
            </body>
            </html>
        "
    ];
    
    return $templates[$tipo] ?? $templates['lembrete'];
}

// Buscar dados atuais da atividade para verificar permissão
$sql_check = "SELECT usuario_id FROM atividades WHERE id = ? AND tenant_id = ?";
$stmt_check = $conn->prepare($sql_check);
$stmt_check->bind_param("ii", $atividade_id, $tenant_id);
$stmt_check->execute();
$result_check = $stmt_check->get_result();

if ($result_check->num_rows === 0) {
    echo json_encode(['success' => false, 'message' => 'Atividade não encontrada']);
    exit;
}

$atividade_data = $result_check->fetch_assoc();
$stmt_check->close();

// Verificar se o usuário é o proprietário da atividade
if ($atividade_data['usuario_id'] != $usuario_id) {
    echo json_encode(['success' => false, 'message' => 'Você não tem permissão para editar esta atividade']);
    exit;
}

// Processar os 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;

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

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

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

// Atualizar a atividade
$sql = "UPDATE atividades SET nome = ?, descricao = ?, data_agendada = ?, notificacao_minutos_antes = ?, cliente_id = ?, lista_atividade_id = ? WHERE id = ? AND tenant_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sssiiiii", $nome, $descricao, $data_hora, $notificacao_minutos_antes, $cliente_id, $lista_atividade_id, $atividade_id, $tenant_id);

if ($stmt->execute()) {
    // Enviar e-mail se solicitado
    if ($enviar_email) {
        // Buscar dados atualizados da atividade com informações do usuário
        $sql_atividade = "SELECT a.*, u.email, u.nome as usuario_nome, c.Nome_Cliente 
                         FROM atividades a 
                         LEFT JOIN usuarios u ON a.usuario_id = u.id 
                         LEFT JOIN clientes c ON a.cliente_id = c.id 
                         WHERE a.id = ?";
        $stmt_atividade = $conn->prepare($sql_atividade);
        $stmt_atividade->bind_param("i", $atividade_id);
        $stmt_atividade->execute();
        $atividade = $stmt_atividade->get_result()->fetch_assoc();
        $stmt_atividade->close();
        
        if ($atividade && !empty($atividade['email'])) {
            $assunto = "✏️ Atividade Alterada: " . $atividade['nome'];
            $mensagem = criarTemplateNotificacao($atividade, 'lembrete');
            $enviado = enviarEmailNotificacao($atividade['email'], $assunto, $mensagem, $tenant_id);
            
            if ($enviado) {
                error_log("E-mail de alteração enviado para atividade ID: $atividade_id");
            } else {
                error_log("Falha ao enviar e-mail de alteração para atividade ID: $atividade_id");
            }
        }
    }
    
    echo json_encode(['success' => true, 'message' => 'Atividade atualizada com sucesso']);
} else {
    echo json_encode(['success' => false, 'message' => 'Erro ao atualizar atividade: ' . $conn->error]);
}

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