# frozen_string_literal: true

require "qstash/message/publish"
require "qstash/message/enqueue"

module Qstash
  module Message
    class << self
      def publish(destination:, body:, headers: {})
        Publish.call(destination: destination, body: body, headers: headers)
      end

      def enqueue(queue_name:, destination:, body:, headers: {})
        Enqueue.call(queue_name: queue_name, destination: destination, body: body, headers: headers)
      end
    end

    private_constant :Publish, :Enqueue
  end
end