Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md
Abrir Studio Projeto externo em modo read-only; encaminhamento permitido, escrita bloqueada.

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)

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_queue sem criar schema novo;
  • gravar o agendamento avulso como campanha approved com itens pending usando next_attempt_at;
  • salvar anexo localmente em admin/runtime/whatsapp-attachments/ e persistir referencia no source_payload_json;
  • estender o helper PHP e o microservico bot/whatsapp/server.js para envio com anexo no provider local;
  • manter a janela neutra 00:00-23:59 para esse tipo de envio.

Arquivos alvo

  • admin/modulos/bot/disparos.php
  • includes/whatsapp_campaign_queue.php
  • includes/whatsapp_helper.php
  • bot/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 official continua sem anexo nesta trilha; o painel bloqueia esse caso com mensagem explicita;
  • o provider local envia anexo por caminho local permitido em admin/runtime/whatsapp-attachments/.

Validacao esperada

  • php -l admin/modulos/bot/disparos.php
  • php -l includes/whatsapp_campaign_queue.php
  • php -l includes/whatsapp_helper.php
  • node --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 official exigira 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.