Spaces:
Runtime error
Runtime error
File size: 1,627 Bytes
8c7b7ca | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | const { mongoose, baseSchemaOptions } = require('./base');
const EmployeeSchema = new mongoose.Schema({
vendor_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Vendor', required: true },
employee_code: { type: String, trim: true },
name: { type: String, required: true, trim: true },
aadhar_no: { type: String, required: true, trim: true },
designation: { type: String, default: null, trim: true },
department: { type: String, default: null, trim: true },
contact_number: { type: String, default: null, trim: true },
uan_no: { type: String, default: null, trim: true },
esi_no: { type: String, default: null, trim: true },
bank_ifsc_code: { type: String, default: null, trim: true },
bank_account_number: { type: String, default: null, trim: true },
vehicle_no: { type: String, default: null, trim: true },
vehicle_type: { type: String, default: null, trim: true },
profile_photo_path: { type: String, default: null },
status: { type: String, enum: ['Pending', 'HR_Approved', 'Safety_Approved', 'Active', 'Rejected'], default: 'Pending' },
hr_approved_at: { type: Date, default: null },
safety_completed_at: { type: Date, default: null },
due_date: { type: Date, default: null },
is_active: { type: Boolean, default: true }
}, baseSchemaOptions());
EmployeeSchema.index({ vendor_id: 1, aadhar_no: 1 }, { unique: true });
EmployeeSchema.index({ employee_code: 1 }, { unique: true, sparse: true });
EmployeeSchema.index({ vendor_id: 1, employee_code: 1 }, { unique: true, sparse: true });
EmployeeSchema.index({ status: 1 });
module.exports = mongoose.model('Employee', EmployeeSchema);
|