# app/controllers/admin/notificacao_envios_controller.rb
#
# Log de envios — responde "o contato recebeu?". Sem esta tela, a resposta só
# existia no log do Rails, porque o disparo engole a exceção de propósito (um
# SMTP fora do ar não pode travar o fechamento de um pagamento).
class Admin::NotificacaoEnviosController < ApplicationController
  POR_PAGINA = 50

  def index
    authorize NotificacaoEnvio

    escopo = policy_scope(NotificacaoEnvio).includes(:evento_notificacao, :contato, :user)
    escopo = escopo.where(status: params[:status]) if NotificacaoEnvio::STATUS.include?(params[:status])
    escopo = escopo.where(canal: params[:canal])   if NotificacaoEnvio::CANAIS.include?(params[:canal])

    @total_falhas = escopo.falhados.count
    begin
      @pagy, @envios = pagy(escopo.recentes, limit: POR_PAGINA)
    rescue Pagy::OverflowError
      @pagy, @envios = pagy(escopo.recentes, limit: POR_PAGINA, page: 1)
    end
  end
end
