Por que você precisa de um store
- Reentrega de mensagens — quando uma mensagem falha ao decifrar, o WhatsApp pede que o remetente reenvie. O Baileys chama
getMessagepara recuperar o texto plano. - Decifrar votos de enquete — votos chegam como eventos
messages.updatecifrados. Para agregar, você precisa da mensagem original da enquete. - Consultas de histórico —
sock.fetchMessageHistorycarrega mensagens antigas, entregues viamessaging-history.set.
O store em memória
Produção: store em banco de dados
SQLite (com better-sqlite3)
Redis
Consultando mensagens
Checklist
1
Implemente getMessage em SocketConfig
Sem isso, reentregas e decifragem de votos não funcionam.
2
Popule o store a partir de messages.upsert
Guarde o objeto
WAMessage completo, não só o texto.3
Trate messaging-history.set para inserts em lote
Use insert em lote para não martelar o banco.
4
Mantenha estado de chats e contatos atualizado
Escute
chats.* e contacts.*.5
Persista o estado de auth separadamente
Auth state e mensagens são coisas diferentes. Ambos precisam sobreviver a reinicializações.