Implantação da geração de mensagem de forma livre e mudança na engine de mensagem
This commit is contained in:
@@ -111,6 +111,38 @@ Rails.application.routes.draw do
|
||||
resource :planilha_simpli_route, only: [:show], controller: 'planilhas_simpli_route' do
|
||||
get :baixar
|
||||
end
|
||||
|
||||
# ── Notificações: quem recebe, o quê e por qual canal ──────────────────
|
||||
# Grupos e contatos são a lista de destinatários cadastrada à mão; eventos
|
||||
# ligam um gatilho aos grupos; a sessão do WhatsApp é o pareamento por QR.
|
||||
#
|
||||
# ⚠️ Os nomes das rotas (`grupos`, `eventos`, `envios`) NÃO são os nomes dos
|
||||
# controllers de propósito: `grupos_contato` e `eventos_notificacao` têm
|
||||
# singular igual ao plural para o Inflector (que não fala português), e aí
|
||||
# o Rails sufixa o helper de index com `_index` — pegadinha silenciosa.
|
||||
resources :grupos, except: [:show], controller: 'grupos_contato'
|
||||
resources :contatos, except: [:show]
|
||||
resources :eventos, except: [:show], controller: 'eventos_notificacao' do
|
||||
member do
|
||||
post :disparar # gatilho `manual` — manda mensagem de verdade
|
||||
|
||||
# Editor de blocos. O template é identificado pelo CANAL, não por id:
|
||||
# existe no máximo um por evento+canal (índice único), então uma URL com
|
||||
# id seria um identificador a mais para o mesmo par.
|
||||
get 'template/:canal', to: 'mensagem_templates#edit', as: :template
|
||||
patch 'template/:canal', to: 'mensagem_templates#update'
|
||||
post 'template/:canal/preview', to: 'mensagem_templates#preview', as: :preview_template
|
||||
end
|
||||
end
|
||||
resources :envios, only: [:index], controller: 'notificacao_envios'
|
||||
|
||||
# Pareamento do WhatsApp por QR code (ponte Baileys). `show` faz polling do
|
||||
# status via JSON enquanto o QR não é lido.
|
||||
resource :whatsapp_sessao, only: [:show], controller: 'whatsapp_sessoes' do
|
||||
get :status # JSON { conectado, numero, qr }
|
||||
post :testar # envia uma mensagem de teste
|
||||
delete :desconectar
|
||||
end
|
||||
end
|
||||
|
||||
# API interna — Dashboard métricas
|
||||
|
||||
@@ -19,3 +19,22 @@ end
|
||||
every "0 1 * * *" do
|
||||
rake "simpli_route:series"
|
||||
end
|
||||
|
||||
# De hora em hora — dispara os eventos de notificação com gatilho `agendado`
|
||||
# que venceram (resumo diário/semanal da operação).
|
||||
#
|
||||
# POR QUE varredura horária e não uma linha por evento: hora e frequência são
|
||||
# escolhidas na TELA e mudam a qualquer momento; reler o crontab a cada edição
|
||||
# acoplaria a UI ao cron do sistema. `EventoNotificacao#vencido?` garante um
|
||||
# disparo por dia (grava ultimo_disparo_em). Ver DispararEventosAgendadosJob.
|
||||
every '0 * * * *' do
|
||||
rake 'notificacao:agendados'
|
||||
end
|
||||
|
||||
# A cada 2h, das 07h às 21h — compara os números de cada operação com o retrato
|
||||
# anterior e avisa o que mudou (NF que entrou/saiu, entrega que trocou de
|
||||
# status). A maioria dessas mudanças acontece no SimpliRoute e chega pelo sync
|
||||
# do espelho, então só uma varredura as detecta. Ver DetectarMudancasOperacaoJob.
|
||||
every '0 7-21/2 * * *' do
|
||||
rake 'notificacao:mudancas_operacao'
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user