From 00ec9ed933f14aa1938915d29da7269f25ecd29c Mon Sep 17 00:00:00 2001 From: VPS 4 Deploy Agent Date: Sun, 5 Jul 2026 23:55:52 +0200 Subject: [PATCH] =?UTF-8?q?fix(whatsapp):=20chat.upsert=20usa=20contact.co?= =?UTF-8?q?nnect=20no=20update=20(n=C3=A3o=20contactId=20escalar)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../backend/src/modules/whatsapp/handlers/MessageHandler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/newwhats.clube67.com/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts b/newwhats.clube67.com/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts index 10a0381..b7f3aab 100644 --- a/newwhats.clube67.com/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts +++ b/newwhats.clube67.com/newwhats.local/backend/src/modules/whatsapp/handlers/MessageHandler.ts @@ -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 },