Files
starr-philproperties/database/migrations/20260708000001-add-sticky-and-notification-flags.js
T

58 lines
2.1 KiB
JavaScript

'use strict';
module.exports = {
async up(queryInterface, Sequelize) {
// ─── notification_broadcasts ────────────────────────────────────────────
await queryInterface.addColumn('notification_broadcasts', 'show_in_sticky', {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: false,
});
await queryInterface.addColumn('notification_broadcasts', 'show_in_notifications', {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: true,
});
// ─── admin_notifications (admin bell) ───────────────────────────────────
await queryInterface.addColumn('admin_notifications', 'show_in_notifications', {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: true,
});
// Not used by admin UI right now, but keeps filtering semantics symmetric.
await queryInterface.addColumn('admin_notifications', 'show_in_sticky', {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: false,
});
// ─── user_notifications (client notifications + sticky banner) ────────
await queryInterface.addColumn('user_notifications', 'show_in_notifications', {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: true,
});
await queryInterface.addColumn('user_notifications', 'show_in_sticky', {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: false,
});
},
async down(queryInterface) {
await queryInterface.removeColumn('user_notifications', 'show_in_sticky');
await queryInterface.removeColumn('user_notifications', 'show_in_notifications');
await queryInterface.removeColumn('admin_notifications', 'show_in_sticky');
await queryInterface.removeColumn('admin_notifications', 'show_in_notifications');
await queryInterface.removeColumn('notification_broadcasts', 'show_in_notifications');
await queryInterface.removeColumn('notification_broadcasts', 'show_in_sticky');
},
};