Corrige badge de mensagens nao lidas no chat web e desktop

- Web: markChatRead agora zera unreadByAgent na sessao ativa
- Desktop: usa unreadCount do backend ao inves de calcular localmente
- Backend: listMachineMessages retorna unreadCount da sessao
- Centraliza colunas da tabela de tickets do dispositivo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
esdrasrenan 2025-12-10 22:48:18 -03:00
parent 2f766af902
commit 695a44781a
4 changed files with 55 additions and 37 deletions

View file

@ -467,7 +467,7 @@ export const listMachineMessages = query({
.first()
if (!session) {
return { messages: [], hasSession: false }
return { messages: [], hasSession: false, unreadCount: 0 }
}
// Aplicar limite (máximo 100 mensagens por chamada)
@ -505,7 +505,7 @@ export const listMachineMessages = query({
}
})
return { messages: result, hasSession: true }
return { messages: result, hasSession: true, unreadCount: session.unreadByMachine ?? 0 }
},
})

View file

@ -3438,6 +3438,18 @@ export const markChatRead = mutation({
updatedAt: now,
})
}
// Zerar contador de nao lidas pelo agente na sessao ativa
const session = await ctx.db
.query("liveChatSessions")
.withIndex("by_ticket", (q) => q.eq("ticketId", ticketId))
.filter((q) => q.eq(q.field("status"), "ACTIVE"))
.first()
if (session) {
await ctx.db.patch(session._id, { unreadByAgent: 0 })
}
return { ok: true }
},
})