Files
mbmanager-api/components/user/userModel.js
T

50 lines
1.2 KiB
JavaScript

const mongoose = require('mongoose')
const ObjectID = mongoose.Schema.Types.ObjectId
const validator = require('validator')
const userSchema = new mongoose.Schema(
{
name: String,
email: {
type: String,
lowercase: true,
required: true,
validate: [validator.isEmail, 'Please provide a valid email'],
},
emailUnique: {
type: String,
default: function () {
return this.email || `no-email-${this._id}`
},
},
password: {
type: String,
required: true,
trim: true,
min: 8,
select: false,
},
passwordChangedAt: Date,
passwordResetToken: String,
passwordResetExpires: Date,
isActive: {
type: Boolean,
default: true,
},
role: {
type: ObjectID,
ref: 'Role',
required: true
},
isAdmin: {
type: Boolean,
default: false,
},
},
{ toJSON: { virtuals: true }, toObject: { virtuals: true }, timestamps: true }
)
const User = mongoose.model('User', userSchema)
module.exports = User