const mongoose = require('mongoose').set('debug', false); const Schema = mongoose.Schema; const tools = require('../tools/general'); mongoose.Promise = global.Promise; mongoose.level = 'F'; // Resolving error Unknown modifier: $pushAll mongoose.plugin(schema => { schema.options.usePushEach = true; }); const BotSchema = new Schema({ idapp: { type: String, }, page: { type: Number, }, index: { type: Number, }, riga: { type: Number, }, active: { type: Boolean, }, lang: { type: String, }, main: { type: Boolean, }, label: { type: String, }, type: { type: Number, }, value: { type: String, }, visibility: { type: Number, // VISIB_ALL, VISIB_ONLYIF_LOGGED, VISIB_ONLY_ADMIN }, date_updated: { type: Date, }, }); BotSchema.statics.getFieldsForSearch = function () { return [{ field: 'label', type: tools.FieldType.string }] }; BotSchema.statics.executeQueryTable = function (idapp, params) { params.fieldsearch = this.getFieldsForSearch(); return tools.executeQueryTable(this, idapp, params); }; BotSchema.statics.DuplicateAllRecords = async function (idapporig, idappdest) { return await tools.DuplicateAllRecords(this, idapporig, idappdest); }; BotSchema.statics.generateBotMenuRecords = async function (idapp) { try { let arrrec = [ { "page": 1, "index": 1, "riga": 1, "active": true, "label": "Vai al Sito", "type": 3, "value": "{host}", "visibility": 0, idapp, "lang": "it", "main": true }, { "page": 1, "index": 1, "riga": 2, "active": true, "label": "Il mio Profilo", "type": 3, "value": "{host}/my/{username}", "visibility": 1, idapp, "lang": "it", "main": true }, { "page": 1, "index": 1, "riga": 3, "active": true, "label": "Link da Condividere", "type": 2, "value": "{host}/registrati/{username}", "visibility": 1, idapp, "lang": "it", "main": true, }, { "page": 1, "index": 2, "riga": 1, "active": true, "label": "🔮 Help", "type": 4, "value": "", "visibility": 0, idapp, "lang": "it", "main": true, }, { "page": 1, "index": 1, "riga": 3, "active": true, "label": "💁‍♀️ Admin", "type": 4, "value": "", "visibility": 5, idapp, "lang": "it", "main": true }, { "page": 1, "index": 2, "riga": 2, "active": true, "label": "Imposta Foto Profilo", "type": 4, "value": "🖼 SetPicProfile", "visibility": 1, idapp, "lang": "it", "main": true }, { "page": 1, "index": 2, "riga": 3, "active": true, "label": "🛠 Strumenti", "type": 1, "value": "2", "visibility": 1, idapp, "lang": "it", "main": true, }, { "page": 2, "index": 1, "riga": 1, "active": true, "label": "🔑 Cambio Password", "type": 4, "value": "🔑 SetResetPwd", "visibility": 1, idapp, "lang": "it", }, { "page": 2, "index": 1, "riga": 2, "active": true, "label": "👉🏻 Indietro", "type": 1, "value": "1", "visibility": 1, idapp, "lang": "it", }]; const ris = await MyBot.insertMany(arrrec); return ris; } catch (e) { console.error('Err:', e); } } BotSchema.statics.findAllIdApp = async function (idapp) { const Bot = this; const myfind = { idapp }; return await Bot.find(myfind).sort({ page: 1, lang: 1, riga: 1, index: 1 }).lean(); }; const MyBot = mongoose.model('Bot', BotSchema); MyBot.createIndexes() .then(() => { }) .catch((err) => { throw err; }); module.exports = { MyBot };