module Mobile
    module Entities
    class User < Grape::Entity
      include ApplicationHelper
      include ApiHelper
      def self.user_expose(f)
        expose f do |u,opt|
          if u.is_a?(Hash) && u.key?(f)
            u[f]
          elsif u.is_a?(::User)
            if u.respond_to?(f)
              u.send(f)  unless u.user_extensions.nil?
            else
              case f
                when :img_url
                  "/images/#{url_to_avatar(u)}"
                when :gender
                  u.nil? || u.user_extensions.nil? || u.user_extensions.gender.nil? ? 0 : u.user_extensions.gender
                when :work_unit
                  get_user_work_unit u  unless u.user_extensions.nil?
                when :location
                  get_user_location u  unless u.user_extensions.nil?
                when :brief_introduction
                  u.nil? || u.user_extensions.nil? ? "" : u.user_extensions.brief_introduction
                when :student_num
                  u.nil? || u.user_extensions.nil? ? "" : u.user_extensions.student_id
                when :realname
                  u.nil? ? "" : get_user_realname(u)
              end
            end
          end

        end
      end

      expose :id 
      #头像
      user_expose :img_url
      #昵称
      expose :nickname
      #真名
      user_expose :realname
      #性别
      user_expose :gender
      #我的二维码
      #工作单位
      user_expose :work_unit
      #邮箱地址
      user_expose :mail
      #地区
      user_expose :location
      #签名
      user_expose :brief_introduction
      #总成绩
      user_expose :score
      #学号
      user_expose :student_num
      # 活跃值
      user_expose :active_count
    end
  end

end
