'use strict' module.exports = (sequelize, DataTypes) => { var role = sequelize.define('role', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: DataTypes.INTEGER }, name: DataTypes.STRING, descr: DataTypes.STRING(2048) }, { timestamps: false }) role.associate = function (models) { var RoleXPermission = sequelize.define('role_x_permission', {}, { timestamps: false, freezeTableName: true }) role.belongsToMany(models.permission, { as: 'permissions', through: RoleXPermission, foreignKey: 'roleId', otherKey: 'permissionId' }) var RoleXGroup = sequelize.define('role_x_group', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true }) role.belongsToMany(models.group, { as: 'groups', through: RoleXGroup, foreignKey: 'roleId', otherKey: 'groupId' }) } return role }