145 lines
2.5 KiB
JavaScript
145 lines
2.5 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
|
|
},
|
|
qrCode:{
|
|
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},
|
|
|
|
}],
|
|
company:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
});
|
|
|
|
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);
|