Backlog Unificado
Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.
Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Especificações Disponíveis (fora da fila pendente)
- BK-136
- BK-137
- BK-138
- BK-147
- BK-148
- BK-149
- BK-150
- BK-151
- BK-156
- BK-158
- BK-159
- BK-160
- BK-161
- BK-162
- BK-163
- BK-164
- BK-165
- BK-166
- BK-170
- BK-171
- BK-172
- BK-177
- BK-183
- BK-186
- BK-187
- BK-189
- BK-190
- BK-191
- BK-192
- BK-193
- BK-195
- BK-196
- BK-197
- BK-198
- BK-199
- BK-201
- BK-205
- BK-207
- BK-208
- BK-209
- BK-210
- BK-211
- BK-212
- BK-213
- BK-214
- BK-215
- BK-216
- BK-217
- BK-218
- BK-219
- BK-220
- BK-221
- BK-229
- BK-230
- BK-231
- BK-232
- BK-233
- BK-234
- BK-235
- BK-236
- BK-239
- BK-240
- BK-241
- BK-242
- BK-243
- BK-244
- BK-245
- BK-246
- BK-248
- BK-249
- BK-250
- BK-251
- BK-252
- BK-253
- BK-254
- BK-255
- BK-256
- BK-257
- BK-258
- BK-259
- BK-260
- BK-261
- BK-262
- BK-263
- BK-264
- BK-265
- BK-266
- BK-267
- BK-268
- BK-269
- BK-270
- BK-271
- BK-272
- BK-275
- BK-276
- BK-277
- BK-278
- BK-279
- BK-280
- BK-295
- BK-313
Detalhe do BK Selecionado
/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-313-whatsapp-disparo-avulso-programado.md • 2026-05-05T03:55:07.553Z
BK-313 - Disparo avulso programado no painel WhatsApp
Objetivo
Permitir que o admin agende pelo painel admin/modulos/bot/disparos.php uma mensagem de WhatsApp para uma pessoa ou uma lista curta de numeros informados manualmente, com suporte a data/hora de envio em America/Sao_Paulo e anexo opcional.
Escopo desta rodada
- reaproveitar
whatsapp_campaigns+whatsapp_campaign_queuesem criar schema novo; - gravar o agendamento avulso como campanha
approvedcom itenspendingusandonext_attempt_at; - salvar anexo localmente em
admin/runtime/whatsapp-attachments/e persistir referencia nosource_payload_json; - estender o helper PHP e o microservico
bot/whatsapp/server.jspara envio com anexo no providerlocal; - manter a janela neutra
00:00-23:59para esse tipo de envio.
Arquivos alvo
admin/modulos/bot/disparos.phpincludes/whatsapp_campaign_queue.phpincludes/whatsapp_helper.phpbot/whatsapp/server.js
Decisoes
- o fluxo do painel ficou via agendamento avulso no proprio modulo de disparos;
- o anexo nao ganhou coluna nova; segue em
source_payload_json.attachment; - o provider
officialcontinua sem anexo nesta trilha; o painel bloqueia esse caso com mensagem explicita; - o provider
localenvia anexo por caminho local permitido emadmin/runtime/whatsapp-attachments/.
Validacao esperada
php -l admin/modulos/bot/disparos.phpphp -l includes/whatsapp_campaign_queue.phpphp -l includes/whatsapp_helper.phpnode --check bot/whatsapp/server.js- smoke manual no painel:
- abrir
Bot > Disparos - clicar
Agendar disparo avulso - informar mensagem, telefone e data futura
- opcionalmente anexar arquivo suportado
- confirmar que a campanha aparece no historico com
approved
Pendencias / riscos
- para o microservico Node usar o patch de anexo em producao, pode ser necessario reiniciar o servico WhatsApp se ele ja estiver rodando com a versao anterior do
server.js; - o provider
officialexigira uma frente separada com Meta Media API para anexos; - falta smoke real de envio nesta rodada; a implementacao foi validada por sintaxe e fluxo de codigo.