schema-user.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. var Schema = require('mongoose').Schema;
  2. const userSchema = new Schema({
  3. nickname: { type: String, desc: '昵称', listing: false, },
  4. disabled: { type: Boolean, default: false, index: true, desc: '禁用' },
  5. name: { type: String, index: true, desc: '姓名', listing: true, searchable: true, },
  6. username: { type: String, index: true, unique: true, required: true, desc: '用户名', searchable: true, orderable: true, },
  7. password: { type: String, required: true, desc: '密码', listing: false, },
  8. phone: { type: String, default: null, index: true, desc: '手机号', searchable: true, orderable: true, },
  9. email: { type: String, index: true, desc: 'Email', searchable: true, orderable: true, },
  10. createBy: { type: Schema.Types.ObjectId, ref: 'User', index: true, desc: '创建者', },
  11. roles: { type: [{ type: Schema.Types.ObjectId, ref: 'Role', }], listing: true, desc: '角色', },
  12. epgs: { type: [String], index: true, trim: true, desc : 'Epg', searchable: true }, // 绑定的epg列表
  13. administrator: { type: Boolean, default: false, listing: false, desc: '是否管理员(已废弃)', },
  14. emailVerified: { type: Boolean, required: true, default: false, desc: 'Email是否验证', listing: false, },
  15. dateSignup: { type: Date, required: true, default: Date.now, index: true, desc: '创建时间', },
  16. dateLastSignin: { type: Date, default: Date.now, index: true, desc: '最后登录时间', },
  17. ipLastSignin: { type: String, default: null, index: true, desc: '最后登录ip', },
  18. }, {
  19. toJSON: {
  20. virtuals: true,
  21. },
  22. toObject: {
  23. virtuals: true,
  24. }
  25. });
  26. module.exports = userSchema;