73 lines
1.1 KiB
JavaScript
73 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const mongoose = require('mongoose');
|
|
|
|
const SETTINGS_KEY = 'app';
|
|
|
|
const bypassNumberSchema = new mongoose.Schema({
|
|
phoneNumber: {
|
|
type: String,
|
|
required: true,
|
|
trim: true
|
|
},
|
|
label: {
|
|
type: String,
|
|
trim: true,
|
|
default: ''
|
|
},
|
|
isActive: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
createdAt: {
|
|
type: Date,
|
|
default: Date.now
|
|
}
|
|
}, {
|
|
_id: true
|
|
});
|
|
|
|
const settingSchema = new mongoose.Schema({
|
|
key: {
|
|
type: String,
|
|
required: true,
|
|
unique: true,
|
|
default: SETTINGS_KEY,
|
|
index: true
|
|
},
|
|
smsTemplates: {
|
|
type: mongoose.Schema.Types.Mixed,
|
|
default: {}
|
|
},
|
|
smsEnabled: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
emailEnabled: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
botEnabled: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
smsBypassNumbers: {
|
|
type: [bypassNumberSchema],
|
|
default: []
|
|
},
|
|
notificationSettings: {
|
|
type: mongoose.Schema.Types.Mixed,
|
|
default: {}
|
|
}
|
|
}, {
|
|
timestamps: true,
|
|
minimize: false
|
|
});
|
|
|
|
const Setting = mongoose.model('Setting', settingSchema);
|
|
|
|
module.exports = {
|
|
Setting,
|
|
SETTINGS_KEY
|
|
};
|