<?php
session_start();

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

$tenant_id = $_SESSION['tenant_id'] ?? null;
$usuario_id = $_SESSION['id'] ?? null; // id do usuário logado
$usuario_nome = $_SESSION['nome'] ?? 'Usuário';

if (!$tenant_id || !$usuario_id) {
    die("Tenant ou usuário não identificado.");
}
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<title>Chat</title>
<style>
  body { font-family: Arial, sans-serif; max-width: 600px; margin: 20px auto; }
  #messages { list-style: none; padding: 0; height: 300px; overflow-y: scroll; border: 1px solid #ccc; margin-bottom: 10px; }
  #messages li { padding: 5px 10px; }
  #messages li.self { background: #daf1da; text-align: right; }
  #formChat { display: flex; }
  #input { flex: 1; padding: 10px; font-size: 16px; }
  #send { padding: 10px 20px; font-size: 16px; }
</style>
</head>
<body>

<h2>Chat</h2>
<ul id="messages"></ul>
<form id="formChat">
  <input id="input" autocomplete="off" placeholder="Digite sua mensagem" />
  <button id="send" type="submit">Enviar</button>
</form>

<script>
const usuarioId = <?= json_encode($usuario_id) ?>;
const usuarioNome = <?= json_encode($usuario_nome) ?>;
const tenantId = <?= json_encode($tenant_id) ?>;

async function carregarMensagens() {
  const res = await fetch('buscar_mensagens.php');
  if (!res.ok) return;
  const mensagens = await res.json();
  const ul = document.getElementById('messages');
  ul.innerHTML = '';
  mensagens.forEach(m => {
    const li = document.createElement('li');
    li.textContent = m.nome + ': ' + m.mensagem;
    if (m.usuario_id == usuarioId) li.classList.add('self');
    ul.appendChild(li);
  });
  ul.scrollTop = ul.scrollHeight;
}

document.getElementById('formChat').addEventListener('submit', async e => {
  e.preventDefault();
  const input = document.getElementById('input');
  const msg = input.value.trim();
  if (!msg) return;
  
  const res = await fetch('enviar_mensagem.php', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({ mensagem: msg })
  });
  
  if (res.ok) {
    input.value = '';
    carregarMensagens();
  } else {
    alert('Erro ao enviar mensagem.');
  }
});

setInterval(carregarMensagens, 3000); // Atualiza a cada 3 segundos
carregarMensagens();
</script>

</body>
</html>
<?php
session_start();
require 'conexao.php';

header('Content-Type: application/json');

if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    echo json_encode(['erro' => 'Não autorizado']);
    exit;
}

$tenant_id = $_SESSION['tenant_id'];
$usuario_id = $_SESSION['id'];
$outro_usuario_id = $_GET['usuario_id'] ?? null;

if (!$outro_usuario_id) {
    echo json_encode(['erro' => 'Usuário não especificado']);
    exit;
}

// Verificar usuário do mesmo tenant
$stmt = $pdo->prepare('SELECT id FROM usuarios WHERE id = ? AND tenant_id = ? AND ativo = "sim" LIMIT 1');
$stmt->execute([$outro_usuario_id, $tenant_id]);
if (!$stmt->fetch()) {
    echo json_encode(['erro' => 'Usuário inválido']);
    exit;
}

$stmt = $pdo->prepare('
    SELECT m.*, u.nome AS remetente_nome FROM mensagens m
    JOIN usuarios u ON u.id = m.remetente_id
    WHERE m.tenant_id = ? AND 
    ((m.remetente_id = ? AND m.destinatario_id = ?) OR (m.remetente_id = ? AND m.destinatario_id = ?))
    ORDER BY m.data_envio ASC
');
$stmt->execute([$tenant_id, $usuario_id, $outro_usuario_id, $outro_usuario_id, $usuario_id]);
$mensagens = $stmt->fetchAll(PDO::FETCH_ASSOC);

echo json_encode($mensagens);
