File tree Expand file tree Collapse file tree
chatbot/chatwoot/services Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1438,6 +1438,19 @@ export class BaileysStartupService extends ChannelStartupService {
14381438
14391439 const messageRaw = this . prepareMessage ( received ) ;
14401440
1441+ // ✅ Preserva campos de encaminhamento do contextInfo
1442+ const contentType = getContentType ( received . message ) ;
1443+ const contentMsg = received ?. message ?. [ contentType ] as any ;
1444+ const msgContextInfo = contentMsg ?. contextInfo ;
1445+
1446+ if ( msgContextInfo ?. isForwarded ) {
1447+ ( messageRaw as any ) . isForwarded = msgContextInfo . isForwarded ;
1448+ ( messageRaw as any ) . forwardingScore = msgContextInfo . forwardingScore || 1 ;
1449+ this . logger . verbose (
1450+ `✅ Mensagem encaminhada detectada - isForwarded: ${ msgContextInfo . isForwarded } , forwardingScore: ${ msgContextInfo . forwardingScore } ` ,
1451+ ) ;
1452+ }
1453+
14411454 // Converter menções de LID em números de telefone legíveis com nomes de contato
14421455 // Em vez de @176407292411998, os usuários verão @5511951279027 - Henrique Nord
14431456 // Funciona tanto para mensagens recebidas quanto enviadas
@@ -1632,8 +1645,11 @@ export class BaileysStartupService extends ChannelStartupService {
16321645 }
16331646
16341647 if ( this . configService . get < Database > ( 'DATABASE' ) . SAVE_DATA . NEW_MESSAGE ) {
1648+ // Remove campos que não existem no schema do Prisma antes de salvar
1649+ const { isForwarded, forwardingScore, ...messageToSave } = messageRaw as any ;
1650+
16351651 const msg = await this . prismaRepository . message . create ( {
1636- data : messageRaw ,
1652+ data : messageToSave ,
16371653 } ) ;
16381654
16391655 const { remoteJid } = received . key ;
Original file line number Diff line number Diff line change @@ -2436,10 +2436,22 @@ export class ChatwootService {
24362436 return result ;
24372437 }
24382438
2439- public getConversationMessage ( msg : any ) {
2439+ public getConversationMessage ( msg : any , fullMessage ?: any ) {
24402440 const types = this . getTypeMessage ( msg ) ;
24412441
2442- const messageContent = this . getMessageContent ( types ) ;
2442+ let messageContent = this . getMessageContent ( types ) ;
2443+
2444+ // ✅ Adiciona indicador de mensagem encaminhada
2445+ const isForwarded = fullMessage ?. isForwarded || msg ?. isForwarded ;
2446+ const forwardingScore = fullMessage ?. forwardingScore || msg ?. forwardingScore ;
2447+
2448+ if ( isForwarded ) {
2449+ const forwardCount = forwardingScore || 1 ;
2450+ const forwardIndicator = forwardCount > 1 ? `↪️ _Encaminhada ${ forwardCount } x_\n\n` : `↪️ _Encaminhada_\n\n` ;
2451+
2452+ this . logger . log ( `✅ Mensagem encaminhada detectada (score: ${ forwardCount } )` ) ;
2453+ messageContent = forwardIndicator + messageContent ;
2454+ }
24432455
24442456 return messageContent ;
24452457 }
@@ -2516,7 +2528,8 @@ export class ChatwootService {
25162528 } ;
25172529 }
25182530
2519- const originalMessage = await this . getConversationMessage ( body . message ) ;
2531+ const originalMessage = await this . getConversationMessage ( body . message , body ) ;
2532+
25202533 const bodyMessage = originalMessage
25212534 ? originalMessage
25222535 . replaceAll ( / \* ( (? ! \s ) ( [ ^ \n * ] + ?) (?< ! \s ) ) \* / g, '**$1**' )
You can’t perform that action at this time.
0 commit comments