Truy vấn thông tin user

Model

{
  name: {
    type: Types.Name,
    required: true,
    default: 'Thành viên mới',
    index: true,
  },
  email: {
    type: Types.Email,
    initial: true,
    required: true,
    default: '[email protected]',
    index: true,
  },
  password: {
    type: Types.Password,
    initial: true,
    required: true,
    default: 'nopass',
    access: 'protected',
  },
  displayName: {
    type: String,
    default: 'Thành viên mới',
  },
  username: { type: String },
  phoneNumber: { type: String },
  isZalo: { type: Boolean, default: false },

  /* Additional Information */
  avatarFileUpload: {
    type: Types.File,
    storage: myStorage,
  },
  gender: { type: String, initial: true },
  birthDay: { type: Types.Date, initial: true },
  bio: { type: Types.Textarea, initial: true },
  facebookProfile: { type: Types.Url },

  firebaseId: { type: String, noedit: true },
  provider: { type: String, noedit: true },
  providerId: { type: String, noedit: true },
  profileUrl: { type: String, noedit: true },
  accessToken: { type: String, noedit: true, access: 'protected' },
  refreshToken: { type: String, noedit: true, access: 'protected' },
  avatar: {
    type: String,
    default: '<https://d1uhbq1za6lcid.cloudfront.net/em8s7kckjcw9p_sunny.png>',
  },

  recordingDailyLimit: {
    type: Number,
    default: 0,
  },
  recordingWeeklyLimit: {
    type: Number,
    default: 0,
  },
  recordingMonthlyLimit: {
    type: Number,
    default: 0,
  },
  recordingQuota: {
    type: Number,
    default: 3, // it's free users
  },

  zoomApp: {
    installed: { type: Boolean, default: false },
    verified: { type: Boolean },
    PMI: { type: String },
  },

  // thông tin premium của người dùng
  premium: {
    value: {
      type: Number,
      default: -1, // -1, 0: free user, 1: premium user
    },
    expired: { type: Types.Date },
    package: {
      type: Types.Select,
      // 1 month, 3 months, 6 months, 12 months,
      options: 'p1, p3, p6, p12, life-time', 
      default: 'p6',
    },
  },

  isTeacher: { type: Boolean, default: false },
  // số lượng assignment cùng thời điểm
  assignmentLimit: { type: Number, default: 10 },
  // số lượng assignment ở thời điểm hiện tại
  assignmentAmount: { type: Number, default: 0 },
  // số lượng assignment ở thời điểm hiện tại
  assignmentQuota: { type: Number, default: 0 },

  // `tutor,admin,teacher`
  roles: { type: Types.TextArray },
  displayRole: { type: String },
  isVerified: { type: Boolean, default: false },
  lastAccessedAt: { type: Types.Datetime, noedit: true },

  hacknaoPoint: { type: Number },
  hacknaoRanking: { type: Number },
  interests: { type: Types.TextArray }, // `xem phim, nghe nhạc, đọc sách`
  rating: {
    value: { type: Number, noedit: true },
    amount: { type: Number, default: 0, noedit: true },
  },

  appVersion: { type: String },
  mmm: {
    type: Types.TextArray,
  },
  isStaff: { type: Boolean, default: false },
  createdAt: { type: Types.Datetime, default: Date.now, noedit: true },
},