forked from UKSOURCE/cms.hailearning.edu.vn
65 lines
1.0 KiB
JavaScript
65 lines
1.0 KiB
JavaScript
const mongoose = require("mongoose");
|
|
const AUDIT_ACTIONS = require("../constants/auditAction");
|
|
|
|
const auditLogSchema = new mongoose.Schema({
|
|
model: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
|
|
documentId: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
required: true,
|
|
},
|
|
|
|
action: {
|
|
type: String,
|
|
enum: Object.values(AUDIT_ACTIONS),
|
|
required: true,
|
|
},
|
|
|
|
before: {
|
|
type: mongoose.Schema.Types.Mixed,
|
|
default: null,
|
|
},
|
|
|
|
after: {
|
|
type: mongoose.Schema.Types.Mixed,
|
|
default: null,
|
|
},
|
|
|
|
changes: {
|
|
type: [
|
|
{
|
|
field: String,
|
|
before: mongoose.Schema.Types.Mixed,
|
|
after: mongoose.Schema.Types.Mixed,
|
|
},
|
|
],
|
|
default: [],
|
|
},
|
|
|
|
ipAddress: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
|
|
userAgent: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
|
|
performedBy: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: "User",
|
|
default: null,
|
|
},
|
|
|
|
createdAt: {
|
|
type: Date,
|
|
default: Date.now,
|
|
},
|
|
});
|
|
|
|
module.exports = mongoose.model("AuditLog", auditLogSchema);
|