Sha256: a8767aed29710c04670821dbed74863e30a752ce2dae428b90c917151ff682b5

Contents?: true

Size: 907 Bytes

Versions: 28

Compression:

Stored size: 907 Bytes

Contents

module Workarea
  class Fulfillment
    class Token
      include ApplicationDocument

      field :_id, type: String, default: -> { SecureRandom.base58(24) }
      field :order_id, type: String
      field :order_item_id, type: String
      field :sku, type: String
      field :enabled, type: Boolean, default: true
      field :downloads, type: Integer, default: 0

      index(order_id: 1, order_item_id: 1)
      index(sku: 1)

      scope :for_sku, ->(sku) { where(sku: sku) }
      scope :by_order, ->(id) { where(order_id: id) }

      def self.for_order_item(order_id, item_id)
        where(order_id: order_id.to_s, order_item_id: item_id.to_s).first
      end

      def self.sorts
        [Sort.newest, Sort.modified, Sort.downloads]
      end

      def disabled?
        !enabled?
      end

      def from_user_order?
        user_id.present? && order_id.present?
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.26 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.25 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.23 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.22 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.21 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.20 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.19 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.18 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.17 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.16 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.15 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.14 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.13 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.12 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.11 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.10 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.9 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.8 app/models/workarea/fulfillment/token.rb
workarea-core-3.5.7 app/models/workarea/fulfillment/token.rb