module Notifications class RemoveAll def initialize(notifiable_ids, notifiable_type) return unless %w[Article Comment Mention].include?(notifiable_type) && notifiable_ids.present? @notifiable_collection = notifiable_type.constantize.where(id: notifiable_ids) end def self.call(*args) new(*args).call end def call Notification.where( notifiable: notifiable_collection, ).delete_all end private attr_reader :notifiable_collection end end