'use strict' module.exports = (sequelize, DataTypes) => { var backend = sequelize.define('backend', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: DataTypes.INTEGER }, name: DataTypes.STRING, type: DataTypes.STRING, credentials: { allowNull: false, type: DataTypes.STRING(2048), defaultValue: '[]' }, groupTypes: { allowNull: false, type: DataTypes.STRING(4096), defaultValue: '[]' }, clientTypes: { allowNull: false, type: DataTypes.STRING(4096), defaultValue: '[]' }, sync: { type: DataTypes.STRING(1024) } }, { timestamps: false }) backend.associate = function (models) { var BackendXGroup = sequelize.define('backend_x_group', { externalId: DataTypes.INTEGER, externalType: DataTypes.STRING }, { timestamps: false, freezeTableName: true }) var BackendXClient = sequelize.define('backend_x_client', { externalId: DataTypes.INTEGER, externalType: DataTypes.STRING }, { timestamps: false, freezeTableName: true }) backend.belongsToMany(models.group, { as: 'mappedGroups', through: BackendXGroup, foreignKey: 'backendId', otherKey: 'groupId' }) backend.belongsToMany(models.client, { as: 'mappedClients', through: BackendXClient, foreignKey: 'backendId', otherKey: 'clientId' }) } return backend }