import { QueryInterface, DataTypes } from 'sequelize'; module.exports = { async up(queryInterface: QueryInterface): Promise { // Add notification preference columns to users table await queryInterface.addColumn('users', 'email_notifications_enabled', { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true, comment: 'User preference for receiving email notifications' }); await queryInterface.addColumn('users', 'push_notifications_enabled', { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true, comment: 'User preference for receiving push notifications' }); await queryInterface.addColumn('users', 'in_app_notifications_enabled', { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true, comment: 'User preference for receiving in-app notifications' }); // Add indexes for faster queries await queryInterface.addIndex('users', ['email_notifications_enabled'], { name: 'idx_users_email_notifications_enabled' }); await queryInterface.addIndex('users', ['push_notifications_enabled'], { name: 'idx_users_push_notifications_enabled' }); await queryInterface.addIndex('users', ['in_app_notifications_enabled'], { name: 'idx_users_in_app_notifications_enabled' }); }, async down(queryInterface: QueryInterface): Promise { // Remove indexes first await queryInterface.removeIndex('users', 'idx_users_in_app_notifications_enabled'); await queryInterface.removeIndex('users', 'idx_users_push_notifications_enabled'); await queryInterface.removeIndex('users', 'idx_users_email_notifications_enabled'); // Remove columns await queryInterface.removeColumn('users', 'in_app_notifications_enabled'); await queryInterface.removeColumn('users', 'push_notifications_enabled'); await queryInterface.removeColumn('users', 'email_notifications_enabled'); } };