# Macro::Queue(Api::V1::Clients::Bookings::Operation::CreateChat, args: [:booking]) module Macro def self.Queue(constant, args:) task = lambda { |(ctx, flow_options), **| StepWorker.perform_async(constant, ctx.slice(*args)) [Trailblazer::Activity::Left, [ctx, flow_options]] } { task: task, id: constant.class_name } end class StepWorker include Sidekiq::Worker def perform(constant, args) constant.call(args) end end end