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}, }] }); 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);