/** * Copyright (c) 2026 Niolla * All rights reserved. * * This source code is proprietary and confidential. * Unauthorized copying, modification, distribution, or use * of this file, via any medium, is strictly prohibited. */ // app/models/permission/userPermission.model.js module.exports = (sequelize, DataTypes) => { const userPermission = sequelize.define( "userPermission", { up_id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, user_id: { type: DataTypes.STRING, allowNull: false }, permission_id: { type: DataTypes.STRING, allowNull: false } }, { tableName: "userPermission", timestamps: true, indexes: [{ unique: true, fields: ["user_id", "permission_id"] }], hooks: { afterCreate: (record) => require("../../utils/cache.util").clearPermissionCache(record.user_id), afterUpdate: (record) => require("../../utils/cache.util").clearPermissionCache(record.user_id), afterDestroy: (record) => require("../../utils/cache.util").clearPermissionCache(record.user_id) ,afterBulkCreate: (records) => Promise.all(records.map((record) => require("../../utils/cache.util").clearPermissionCache(record.user_id))) } } ); userPermission.associate = (db) => { userPermission.belongsTo(db.permission, { foreignKey: "permission_id", as: "permission" }); userPermission.belongsTo(db.User, { foreignKey: "user_id", as: "user" }); }; return userPermission; };