Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-07-12 12:39:17 +08:00
parent 82ea9c77c4
commit ea3e82e54c
47 changed files with 1301 additions and 481 deletions
@@ -0,0 +1,42 @@
'use strict';
module.exports = {
async up(queryInterface, Sequelize) {
// Single shared banner image for the rotating sticky announcement bar —
// one image for all (up to 3) concurrently-active announcements, not one
// per announcement. Enforced as a singleton in application code (always
// read/written as id=1), same pragmatic approach as the "no need for a
// dedicated Banner entity" ask — just a one-row setting.
await queryInterface.createTable('sticky_banner_settings', {
id: {
type: Sequelize.SMALLINT,
primaryKey: true,
defaultValue: 1,
},
image_asset_id: {
type: Sequelize.BIGINT,
allowNull: true,
references: { model: 'assets', key: 'asset_id' },
onDelete: 'SET NULL',
},
updatedBy: {
type: Sequelize.BIGINT,
allowNull: true,
},
createdAt: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
},
updatedAt: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
},
});
},
async down(queryInterface) {
await queryInterface.dropTable('sticky_banner_settings');
},
};