# app/mailers/application_mailer.rb
#
# O remetente e as credenciais SMTP saem do BANCO (ConfiguracaoNotificacao), em
# tempo de ENVIO — mudar na tela /admin/configuracao_notificacao vale sem
# reiniciar o container.
#
# ⚠️ Tem que ser `proc`, NÃO lambda. O Devise avalia o `default from:` com
#    `instance_eval(&proc)`, que passa 1 argumento; um lambda de aridade 0
#    estouraria ArgumentError em todo "esqueci minha senha".
#
# ⚠️ E tem que ser `delivery_method_options`, NÃO um before_action mexendo em
#    `message.delivery_method`: o `mail()` roda DEPOIS dos callbacks e chama
#    `wrap_delivery_behavior!`, que sobrescreveria o callback. O
#    `delivery_method_options` é lido dentro do próprio `mail()` e MERGEADO por
#    cima do smtp_settings da classe — é daí que vem, de graça, o fallback para
#    o que o config/initializers/smtp.rb montou a partir do .env.
class ApplicationMailer < ActionMailer::Base
  layout 'mailer'

  default from: proc { ConfiguracaoNotificacao.remetente },
          delivery_method_options: proc { ConfiguracaoNotificacao.opcoes_de_entrega }
end
