harris_paint / src /models /AdminAlert.js
aliroohan179's picture
Upload 58 files
10821c7 verified
Raw
History Blame Contribute Delete
1.13 kB
const mongoose = require('mongoose');
const adminAlertSchema = new mongoose.Schema(
{
type: {
type: String,
required: true,
enum: ['stuck_order', 'failed_payment', 'low_stock', 'unassigned_consultation', 'custom'],
},
severity: {
type: String,
required: true,
enum: ['critical', 'warning', 'info'],
},
title: { type: String, required: true },
message: { type: String },
market: { type: mongoose.Schema.Types.ObjectId, ref: 'Market' },
// Reference to source entity
referenceType: { type: String },
referenceId: { type: mongoose.Schema.Types.ObjectId },
// Lifecycle
status: {
type: String,
enum: ['active', 'dismissed', 'auto_resolved'],
default: 'active',
},
dismissedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'Admin' },
dismissedAt: { type: Date },
isAutoGenerated: { type: Boolean, default: true },
},
{ timestamps: true }
);
adminAlertSchema.index({ status: 1, severity: 1 });
adminAlertSchema.index({ type: 1, status: 1 });
module.exports = mongoose.model('AdminAlert', adminAlertSchema);