klnodekb/models/employee.js

137 lines
2.4 KiB
JavaScript

let mongoose = require('mongoose');
const bcrypt = require('bcryptjs');
// Employee Schema
let employeeSchema = mongoose.Schema({
// Megnevezés
name:{
type: String,
require: true
},
shortName:{
type: String,
require: true
},
accessCode:{
type: String,
require: true
},
address:{
type: String,
require: true
},
email:{
type: String,
required: true
},
auth:{
type: String,
required: true
},
password:{
type: String,
required: true
},
// Létrehozó
author:{
type: String,
require: true
},
// Utolsó bejegyzés ID
workingtimeId:{
type: mongoose.Schema.Types.ObjectId,
require: true
},
// Éves szabadság
vacationYear:{
type: Number,
require: true
},
// Kiadott szabadság
vacationUsed:{
type: Number,
require: true
},
// Kiadott táppénz
sickpayUsed:{
type: Number,
require: true
},
emailNotifyFlags:{
arriving:{
type: Boolean,
default: false,
required: true
},
getaway:{
type: Boolean,
default: false,
required: true
},
monthlySummary:{
type: Boolean,
default: false,
required: true
},
holiday:{
type: Boolean,
default: false,
required: true
}
},
apiKey:{
type: String,
default: '-',
required: true
},
uuid:{
type: String,
default: '-',
required: true
},
isSubcontractor:{
type: String,
default: 'off',
required: true
},
mobilePortalAccessEnabled:{
type: Boolean,
default: false,
required: true
},
isForeman:{
type: Boolean,
default: false,
required: true
},
isStudent:{
type: String,
default: 'off',
required: true
},
konyvelesre:{
type: String,
default: 'off',
required: true
},
holidayData: [{
start_date: {type: String},
end_date: {type: String},
duration: {type: Number},
}],
sickpayData: [{
start_date: {type: String},
end_date: {type: String},
duration: {type: Number},
}]
});
employeeSchema.methods.comparePassword = function(candidatePassword, cb) {
bcrypt.compare(candidatePassword, this.password, function(err, isMatch) {
if (err) return cb(err);
cb(null, isMatch);
});
};
var Employee = module.exports = mongoose.model('Employee', employeeSchema);