class Item < ApplicationRecord include HasWhatnot enum equip_slot: [:mainhand, :offhand, :head, :neck, :back, :torso, :grip, :left_ring, :right_ring, :waist, :legs, :feet, :curio] validates :gid, :name, :description, presence: true validates :usable, inclusion: { in: [true, false] } def equipment? self.whatnot && self.whatnot[:equip_slots]&.any? end def equip_slots return [] unless self.equipment? self.whatnot[:equip_slots].map { |data| data.to_sym } end end