class Category
  include Mongoid::Document
  include Mongoid::Timestamps

  field :disable, type: Boolean, default: false
  field :title, localize: true

  belongs_to :module_app
  has_many :authorizations

  scope :enabled, ->{ where(:disable.in => [false, nil, ''])}

  validates :title, presence: true

  def category_sub_managers
    Authorization.category_authorized_users(self).pluck(:user_id)
  end

  def self.authorized(user)
    module_app_categories = self.each{|c| c}.to_a rescue []
    authorized_categories = user.approved_categories
    intersection = (module_app_categories & authorized_categories)
    intersection
  end
end