Spaces:
Runtime error
Runtime error
| 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); | |