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

// Verifica se o usuário está logado
if (!isset($_SESSION['logado'])) {
    echo json_encode(['success' => false, 'message' => 'Não autorizado']);
    exit;
}

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

// Obtém dados do POST
$atividade_id = $_POST['id'] ?? null;
$nova_data = $_POST['data_agendada'] ?? null;
$nova_duracao = $_POST['nova_duracao'] ?? null;

if (!$atividade_id || !$nova_data) {
    echo json_encode(['success' => false, 'message' => 'Dados insuficientes']);
    exit;
}

// Verifica se o usuário tem permissão para mover esta atividade
$usuario_id = $_SESSION['usuario_id'];
$tenant_id = $_SESSION['tenant_id'];

// Busca a atividade
$sql = "SELECT a.*, u.nome as usuario_nome, u.email as usuario_email, 
               c.Nome_Cliente as cliente_nome, c.email as cliente_email,
               ca.usuario_compartilhado_id IS NOT NULL AS agenda_compartilhada,
               a.usuario_id AS proprietario_id
        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 compartilhamento_agenda ca ON (a.usuario_id = ca.usuario_proprietario_id AND ca.usuario_compartilhado_id = ? AND ca.ativo = 1)
        WHERE a.id = ? AND (a.usuario_id = ? OR ca.usuario_compartilhado_id = ?) AND a.ativo = 1";
        
$stmt = $conn->prepare($sql);
$stmt->bind_param("iiii", $usuario_id, $atividade_id, $usuario_id, $usuario_id);
$stmt->execute();
$result = $stmt->get_result();

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

$atividade = $result->fetch_assoc();

// Verifica se é uma atividade compartilhada (somente leitura)
if ($atividade['agenda_compartilhada'] && $atividade['proprietario_id'] != $usuario_id) {
    echo json_encode(['success' => false, 'message' => 'Você não pode mover atividades compartilhadas de outros usuários']);
    exit;
}

// Atualiza a data da atividade
$sql_update = "UPDATE atividades SET data_agendada = ?, atualizado_em = NOW() WHERE id = ?";
$stmt_update = $conn->prepare($sql_update);
$stmt_update->bind_param("si", $nova_data, $atividade_id);

if ($stmt_update->execute()) {
    // Se solicitado, envia e-mail de notificação
    if (isset($_POST['enviar_email']) && $_POST['enviar_email'] == '1') {
        // Inclui a função de envio de e-mail
        require_once 'calendario.php'; // ou o arquivo onde está a função
        
        // Prepara dados para o e-mail
        $atividade['data_agendada'] = $nova_data; // Atualiza com nova data
        
        $assunto = "📅 Data da Atividade Alterada: " . $atividade['nome'];
        $mensagem = criarTemplateNotificacao($atividade, 'lembrete');
        
        // Envia para o responsável
        if (!empty($atividade['usuario_email'])) {
            enviarEmailNotificacao($atividade['usuario_email'], $assunto, $mensagem, $tenant_id);
        }
        
        // Envia para o cliente se houver
        if (!empty($atividade['cliente_email']) && $atividade['cliente_id']) {
            enviarEmailNotificacao($atividade['cliente_email'], $assunto, $mensagem, $tenant_id);
        }
    }
    
    echo json_encode(['success' => true, 'message' => 'Atividade movida com sucesso']);
} else {
    echo json_encode(['success' => false, 'message' => 'Erro ao atualizar atividade']);
}

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