'use strict' module.exports = (sequelize, DataTypes) => { var config = sequelize.define('config', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: DataTypes.INTEGER }, name: DataTypes.STRING, description: DataTypes.STRING(2048), defaultEntry: DataTypes.INTEGER, timeout: DataTypes.INTEGER, script: DataTypes.STRING(4096), isDefault: { type: DataTypes.BOOLEAN, defaultValue: false, allowNull: false } }, { timestamps: false }) config.associate = function (models) { var ConfigXEntry = sequelize.define('config_x_entry', { sortValue: DataTypes.INTEGER, customName: DataTypes.STRING, keyBind: DataTypes.STRING }, { timestamps: false, freezeTableName: true }) config.belongsToMany(models.entry, { as: 'entries', through: ConfigXEntry, foreignKey: 'configId', otherKey: 'entryId' }) config.hasMany(models.group, { as: 'groups' }) config.hasMany(models.client, { as: 'clients' }) config.hasMany(models.event, { as: 'events' }) } return config }