File size: 890 Bytes
8c7b7ca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const { mongoose, baseSchemaOptions } = require('./base');

const AlertLogSchema = new mongoose.Schema({
  alert_type: {
    type: String,
    enum: ['SAFETY_BADGE_30_DAYS', 'SAFETY_BADGE_7_DAYS', 'SAFETY_BADGE_EXPIRED', 'GATE_PASS_30_DAYS', 'GATE_PASS_7_DAYS', 'GATE_PASS_EXPIRED'],
    required: true
  },
  reference_table: { type: String, enum: ['safety_badges', 'gate_passes'], required: true },
  reference_id: { type: String, required: true },
  recipient_email: { type: String, required: true },
  channel: { type: String, enum: ['Email', 'WhatsApp'], required: true },
  message: { type: String, required: true },
  sent_at: { type: Date, default: Date.now }
}, baseSchemaOptions());

AlertLogSchema.index(
  { alert_type: 1, reference_table: 1, reference_id: 1, recipient_email: 1, channel: 1 },
  { unique: true }
);

module.exports = mongoose.model('AlertLog', AlertLogSchema);