Sha256: 51fbde12933c038d5bfe19a26879360e46c726270573d12454375405197eb2bc

Contents?: true

Size: 711 Bytes

Versions: 62

Compression:

Stored size: 711 Bytes

Contents

module Workarea
  # This mixin includes 2 responsibilities:
  # *   Provide logic to aggregate discount IDs from price adjustments
  # *   Persist to the database for querying later
  #
  module DiscountIds
    extend ActiveSupport::Concern

    included do
      field :discount_ids, type: Array, default: []
      before_save :set_discount_ids
      index({ discount_ids: 1 })
    end

    module ClassMethods
      def discount_ids
        distinct(:discount_ids)
      end
    end

    def discount_ids
      price_adjustments
        .map { |pa| pa.data['discount_id'] }
        .compact
        .uniq
    end

    private

    def set_discount_ids
      self.discount_ids = discount_ids
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.27 app/models/workarea/discount_ids.rb
workarea-core-3.5.4 app/models/workarea/discount_ids.rb
workarea-core-3.4.26 app/models/workarea/discount_ids.rb
workarea-core-3.5.3 app/models/workarea/discount_ids.rb
workarea-core-3.4.25 app/models/workarea/discount_ids.rb
workarea-core-3.5.2 app/models/workarea/discount_ids.rb
workarea-core-3.4.24 app/models/workarea/discount_ids.rb
workarea-core-3.5.1 app/models/workarea/discount_ids.rb
workarea-core-3.4.23 app/models/workarea/discount_ids.rb
workarea-core-3.4.22 app/models/workarea/discount_ids.rb
workarea-core-3.5.0 app/models/workarea/discount_ids.rb
workarea-core-3.4.21 app/models/workarea/discount_ids.rb
workarea-core-3.5.0.beta.1 app/models/workarea/discount_ids.rb
workarea-core-3.4.20 app/models/workarea/discount_ids.rb
workarea-core-3.4.19 app/models/workarea/discount_ids.rb
workarea-core-3.4.18 app/models/workarea/discount_ids.rb
workarea-core-3.4.17 app/models/workarea/discount_ids.rb
workarea-core-3.4.16 app/models/workarea/discount_ids.rb
workarea-core-3.4.15 app/models/workarea/discount_ids.rb
workarea-core-3.4.14 app/models/workarea/discount_ids.rb