Implandação da customização das permissões dos usuarios e das notificaçoes

This commit is contained in:
2026-08-26 17:24:25 -03:00
parent 808c2c7545
commit 5bb5d74e22
71 changed files with 2487 additions and 269 deletions

View File

@@ -93,7 +93,25 @@ module Notificacao
# string — o custo por destinatário é irrelevante perto do envio em si.
def dados_para(contato, user)
nome = contato&.primeiro_nome.presence || user&.nome.to_s.split.first
@dados.merge('contato' => nome.to_s)
dados_completos.merge('contato' => nome.to_s)
end
# O contexto do gatilho + as variáveis que o TEMPLATE usa e o gatilho não
# conhece ({{entregas_mes}}, {{telefone_suporte}}, {{hora}}…).
#
# Resolvido UMA vez por disparo, não por destinatário: `{{entregas_mes}}` é
# uma query, e o valor é o mesmo para todo mundo — só `{{contato}}` muda.
def dados_completos
@dados_completos ||= ResolvedorVariaveis.completar(textos_do_disparo, @dados)
end
# Tudo que será interpolado: os blocos dos dois templates (o evento pode ter
# WhatsApp e e-mail com textos diferentes), o assunto e o corpo padrão.
def textos_do_disparo
[@assunto, @corpo,
@evento.template_utilizavel('whatsapp')&.blocos,
@evento.template_utilizavel('email')&.blocos,
@evento.template_utilizavel('email')&.assunto]
end
# O template do editor vence; sem template utilizável, cai no texto que o