"use strict"; const striptags = require("striptags"); const slugify = require("slugify"); const tool = require("../tools/main"); const config = require("../config/main.js"); const txt = require("../lang/"+config.adminLang+"/questionnaire"); const txtGeneral = require("../lang/"+config.adminLang+"/general"); module.exports = (sequelize, DataTypes) => { const Questionnaire = sequelize.define("Questionnaire", { title: { type: DataTypes.STRING(255), allowNull: false, set(value) { this.setDataValue("title", tool.trimIfNotNull(striptags(value))); }, validate: { notNull: { msg: txt.needTitle }, len: { args: [1, 255], msg: txt.needNotTooLongTitle } } }, slug: { type: DataTypes.STRING(150), allowNull: false, unique: { args: true, msg: txt.needUniqueUrl }, set(value) { value=tool.trimIfNotNull(striptags(value)); if(value!==null) this.setDataValue("slug", slugify(value.substring(0,150), { lower:true, strict:true })); else if(this.title!==null) this.setDataValue("slug", slugify(this.title.substring(0,150), { lower:true, strict:true })); }, validate: { notNull: { msg: txt.needUrl } } }, introduction: { type: DataTypes.TEXT, allowNull: false, set(value) { this.setDataValue("introduction", tool.trimIfNotNull(striptags(value,"