fix(whatsapp): chat.upsert usa contact.connect no update (não contactId escalar)

O `update` do `chat.upsert` no MessageHandler passava `contactId: contact.id`
escalar, que o Prisma rejeita ("Unknown argument `contactId`. Did you mean
`contact`?") → PrismaClientValidationError. Isso derrubava o processMessage
ANTES de emitir o hook ext:message.new, quebrando o tempo real (inclusive o
auto-trigger da Secretária IA) para qualquer contato cujo chat precisasse
revincular o contato. Corrigido nos dois upserts (notify + histórico) para a
sintaxe de relação `contact: { connect: { id: contact.id } }`.

Verificado em dev: a Secretária respondeu ponta-a-ponta após o fix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Deploy Agent
2026-07-05 23:55:52 +02:00
parent 213990d51f
commit 00ec9ed933
@@ -344,7 +344,7 @@ export class MessageHandler {
unreadCount: 0
},
update: {
contactId: contact.id,
contact: { connect: { id: contact.id } },
...(lastAt && { lastMessageAt: lastAt })
},
})
@@ -595,7 +595,7 @@ export class MessageHandler {
lastMessageAt: new Date((messageTimestamp as number) * 1000),
},
update: {
contactId: contact.id, // Garante o vínculo (corrige chats órfãos antigos)
contact: { connect: { id: contact.id } }, // Garante o vínculo (corrige chats órfãos antigos)
lastMessageAt: new Date((messageTimestamp as number) * 1000),
// fromMe: zera unread (estamos respondendo); !fromMe: incrementa
unreadCount: fromMe ? { set: 0 } : { increment: 1 },