feat: Create new file

This commit is contained in:
Wini_Fy
2026-03-19 09:39:53 +07:00
parent f26a4b7e25
commit 4e4042e075
2 changed files with 112 additions and 0 deletions

64
models/auditLog.js Normal file
View File

@@ -0,0 +1,64 @@
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); // Index for faster queries