File size: 795 Bytes
8c7b7ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const { mongoose, baseSchemaOptions } = require('./base');

const UserSchema = new mongoose.Schema({
  full_name: { type: String, required: true, trim: true },
  email: { type: String, required: true, trim: true, lowercase: true },
  password_hash: { type: String, required: true },
  role: { type: String, enum: ['Admin', 'HR', 'Safety_Officer', 'Vendor'], required: true },
  vendor_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Vendor', default: null },
  phone: { type: String, default: null },
  must_reset_password: { type: Boolean, default: false },
  password_changed_at: { type: Date, default: Date.now },
  is_active: { type: Boolean, default: true }
}, baseSchemaOptions());

UserSchema.index({ email: 1 }, { unique: true });

module.exports = mongoose.model('User', UserSchema);