class Zone < ActiveRecord::Base
  scope :alphabetical, -> { order(:label) }
  scope :matching_label, ->(label) {
    where(plain_label: Zone.plainify_label(label))
  }
  scope :for_items, -> { where(arel_table[:type_id].gt(1)) }

  def as_json(options={})
    super({only: [:id, :depth, :label]}.merge(options))
  end

  def is_commonly_used_by_items
    # Zone metadata marks item zones with types 2, 3, and 4. But also, in
    # practice, the Biology Effects zone (type 1, ID 4) has been used for a few
    # items too. So, that's what we return true for!
    # TODO: It'd probably be better to make this a database field?
    [2, 3, 4].include?(type_id) || id == 4
  end
  
  def self.plainify_label(label)
    label.delete('\- /').parameterize
  end
end