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 MyPageSchema = new Schema({ idapp: { type: String, }, author_username: { type: String, }, lang: { type: String, }, title: { type: String, }, icon: { type: String, }, order: { type: Number, default: 1000, }, path: { type: String, }, keywords: { type: String, }, description: { type: String, }, heightimg: { type: Number, }, onlyif_logged: { type: Boolean, }, only_residenti: { type: Boolean, }, color: { type: String, }, imgback: { type: String, }, img1: { type: String, }, content: { type: String, }, video1: { type: String, }, ratio1: { type: String, }, img2: { type: String, }, content2: { type: String, }, video2: { type: String, }, ratio2: { type: String, }, img3: { type: String, }, content3: { type: String, }, video3: { type: String, }, ratio3: { type: String, }, content4: { type: String, }, active: { type: Boolean, }, inmenu: { type: Boolean, }, submenu: { type: Boolean, }, l_par: { type: Number, }, l_child: { type: Number, }, internalpage: { type: Boolean, }, infooter: { type: Boolean, }, }); MyPageSchema.statics.getFieldsForSearch = function () { return [{ field: 'title', type: tools.FieldType.string }, { field: 'keywords', type: tools.FieldType.string }, { field: 'description', type: tools.FieldType.string }, { field: 'content', type: tools.FieldType.string }] }; MyPageSchema.statics.executeQueryTable = function (idapp, params) { params.fieldsearch = this.getFieldsForSearch(); return tools.executeQueryTable(this, idapp, params); }; MyPageSchema.statics.findAllIdApp = async function (idapp) { const MyPage = this; const myfind = { idapp }; return await MyPage.find(myfind, (err, arrrec) => { return arrrec }); }; MyPageSchema.statics.findOnlyStruttRec = async function (idapp) { const MyPage = this; const myfind = { idapp }; return MyPage.find(myfind, { title: 1, icon: 1, order: 1, keywords: 1, description: 1, path: 1, active: 1, onlyif_logged: 1, only_residenti: 1, inmenu: 1, submenu: 1 }, (err, arrrec) => { return arrrec }); }; MyPageSchema.statics.findInternalPages = async function (idapp) { const MyPage = this; const myfind = { idapp, internalpage: { $exists: true, $eq: true } }; return MyPage.find(myfind, { title: 1, path: 1, onlyif_logged: 1, only_residenti: 1, }, (err, arrrec) => { return arrrec }); }; const MyPage = mongoose.model('MyPage', MyPageSchema); module.exports = { MyPage };