hrms-shared
Version:
HRMS shared code: models, middleware, utils
48 lines (44 loc) • 1.14 kB
JavaScript
const mongoose = require("mongoose");
module.exports = (connection) => {
const { Schema } = mongoose;
const sessionSchema = new Schema({
checkIn: {
type: Date,
required: true,
},
checkOut: {
type: Date
}
})
const attendanceSchema = new Schema({
userId: {
type: Schema.Types.ObjectId,
ref: "User",
required: true
},
date: {
type: Date,
required: true
},
sessions: {
type: [sessionSchema],
default: []
},
workedHours: {
type: Number
},
status: {
type: String,
enum: ['Present', 'Absent', 'Late', 'Half-day', 'Leave'],
default: "Absent"
},
remarks: {
type: String
}
}, {
timestamps: true,
collection: "Attendance"
});
attendanceSchema.index({ employeeId: 1, date: 1 }, { unique: true });
return connection.models.Attendance || connection.model("Attendance", attendanceSchema);
}