Sha256: f195e6359a1522eb7af1e1cbb965d64f5ce1b83c9303d9d4aba86756b3f26048

Contents?: true

Size: 762 Bytes

Versions: 5

Compression:

Stored size: 762 Bytes

Contents

# frozen_string_literal: true

module SolidusPromotions
  module Conditions
    class User < Condition
      include OrderLevelCondition

      has_many :condition_users,
        class_name: "SolidusPromotions::ConditionUser",
        foreign_key: :condition_id,
        dependent: :destroy
      has_many :users, through: :condition_users, class_name: Spree::UserClassHandle.new

      def preload_relations
        [:users]
      end

      def eligible?(order, _options = {})
        users.include?(order.user)
      end

      def user_ids_string
        user_ids.join(",")
      end

      def user_ids_string=(user_ids)
        self.user_ids = user_ids.to_s.split(",").map(&:strip)
      end

      def updateable?
        true
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
solidus_promotions-4.5.1 app/models/solidus_promotions/conditions/user.rb
solidus_promotions-4.5.0 app/models/solidus_promotions/conditions/user.rb
solidus_promotions-4.4.2 app/models/solidus_promotions/conditions/user.rb
solidus_promotions-4.4.1 app/models/solidus_promotions/conditions/user.rb
solidus_promotions-4.4.0 app/models/solidus_promotions/conditions/user.rb