module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable('notifications', { id: { type: Sequelize.UUID, allowNull: false, primaryKey: true, }, actorId: { type: Sequelize.UUID, allowNull: false, references: { model: 'users', }, }, userId: { type: Sequelize.UUID, allowNull: false, references: { model: 'users', }, }, event: { type: Sequelize.STRING }, email: { type: Sequelize.BOOLEAN }, createdAt: { type: Sequelize.DATE, allowNull: false, } }); await queryInterface.createTable('notification_settings', { id: { type: Sequelize.UUID, allowNull: false, primaryKey: true, }, userId: { type: Sequelize.UUID, allowNull: false, references: { model: 'users', }, }, teamId: { type: Sequelize.UUID, allowNull: false, references: { model: 'teams', }, }, event: { type: Sequelize.STRING }, createdAt: { type: Sequelize.DATE, allowNull: false, } }); await queryInterface.addIndex('notification_settings', ['teamId', 'userId']); await queryInterface.addIndex('notification_settings', ['event']); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable('notifications'); await queryInterface.dropTable('notification_settings'); await queryInterface.removeIndex('notification_settings', ['teamId', 'userId']); await queryInterface.removeIndex('notification_settings', ['event']); }, };