Sha256: 2990a91c8210150468d6d98150f641f268a3684f28589f3b72ccf21772b91ce2

Contents?: true

Size: 903 Bytes

Versions: 24

Compression:

Stored size: 903 Bytes

Contents

module Workarea
  class DeactivateStaleDiscounts
    include Sidekiq::Worker

    def perform(*args)
      Mongoid::AuditLog.record do
        Pricing::Discount.any_in(id: unused_discount_ids).auto_deactivate
      end
    end

    def unused_discount_ids
      all_active_discount_ids - used_discount_ids
    end

    def used_discount_ids
      @used_discount_ids ||=
        (order_discount_ids + shipping_discount_ids).map(&:to_s).uniq
    end

    def order_discount_ids
      Order.since(Workarea.config.discount_staleness_ttl.ago).discount_ids
    end

    def shipping_discount_ids
      Shipping
        .since(Workarea.config.discount_staleness_ttl.ago)
        .discount_ids
    end

    def all_active_discount_ids
      Pricing::Discount
        .where(:updated_at.lt => Workarea.config.discount_staleness_ttl.ago)
        .active
        .pluck(:id)
        .map(&:to_s)
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.44 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.43 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.42 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.41 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.40 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.39 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.38 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.37 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.36 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.35 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.34 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.33 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.32 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.31 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.30 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.29 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.28 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.27 app/workers/workarea/deactivate_stale_discounts.rb
workarea-core-3.4.26 app/workers/workarea/deactivate_stale_discounts.rb