# app/policies/evento_notificacao_policy.rb
class EventoNotificacaoPolicy < ApplicationPolicy
  def index? = pode?('notificacao.eventos')
  def show?  = index?

  def create? = pode?('notificacao.eventos_gerenciar')
  def new?    = create?
  def update? = create?
  def edit?   = update?

  # Disparar manda mensagem DE VERDADE, em nome da empresa — chave própria,
  # separada de configurar o evento.
  def disparar? = pode?('notificacao.disparar_manual')

  # Evento de sistema não é apagável: o código dispara por ele.
  def destroy?
    create? && record.respond_to?(:apagavel?) && record.apagavel?
  end

  class Scope < Scope
    def resolve
      user.pode?('notificacao.eventos') ? scope.all : scope.none
    end
  end
end
