Usa heartbeats reais para marcar máquina online no chat

This commit is contained in:
esdrasrenan 2025-12-10 20:37:02 -03:00
parent da5a8f8380
commit 81d1a7c7f7

View file

@ -3111,7 +3111,19 @@ export const listChatMessages = query({
if (machine) {
const fiveMinutesAgo = now - 5 * 60 * 1000
liveChat.hasMachine = true
liveChat.machineOnline = Boolean(machine.lastHeartbeatAt && machine.lastHeartbeatAt > fiveMinutesAgo)
// Usa tabela de heartbeats (fonte de verdade) com fallback para campo legado
let lastHeartbeatAt: number | null = null
const hb = await ctx.db
.query("machineHeartbeats")
.withIndex("by_machine", (q) => q.eq("machineId", machine._id))
.first()
if (hb?.lastHeartbeatAt) {
lastHeartbeatAt = hb.lastHeartbeatAt
} else if (machine.lastHeartbeatAt) {
lastHeartbeatAt = machine.lastHeartbeatAt
}
liveChat.machineOnline = Boolean(lastHeartbeatAt && lastHeartbeatAt > fiveMinutesAgo)
liveChat.machineHostname = machine.hostname
// Verificar sessao ativa