module.exports = (sequelize, DataTypes) => { const UserRole = sequelize.define("UserRole", { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, user_id: { type: DataTypes.STRING, allowNull: false }, role_id: { type: DataTypes.STRING, allowNull: false }, }, { tableName: "user_roles", timestamps: true, indexes: [{ unique: true, fields: ["user_id", "role_id"] }], hooks: { afterCreate: (record) => require("../../utils/cache.util").clearPermissionCache(record.user_id), afterDestroy: (record) => require("../../utils/cache.util").clearPermissionCache(record.user_id), } }); UserRole.associate = (db) => { UserRole.belongsTo(db.User, { foreignKey: "user_id", as: "user" }); UserRole.belongsTo(db.roles, { foreignKey: "role_id", as: "role" }); }; return UserRole; };