'use strict'; module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable('landing_pages', { id: { type: Sequelize.BIGINT, autoIncrement: true, primaryKey: true, }, page_id: { type: Sequelize.BIGINT, allowNull: false, unique: true, references: { model: 'pages', key: 'id' }, onDelete: 'CASCADE', }, title: { type: Sequelize.STRING(255), allowNull: false, }, slug: { type: Sequelize.STRING(255), allowNull: false, unique: true, }, meta_title: { type: Sequelize.STRING(255), allowNull: true, }, meta_description: { type: Sequelize.TEXT, allowNull: true, }, status: { type: Sequelize.ENUM('draft', 'published', 'archived'), allowNull: false, defaultValue: 'draft', }, published_at: { type: Sequelize.DATE, allowNull: true, }, created_by: { type: Sequelize.BIGINT, allowNull: true, references: { model: 'users', key: 'user_id' }, onDelete: 'SET NULL', }, created_at: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'), }, updated_at: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'), }, }); await queryInterface.addIndex('landing_pages', { fields: ['slug'], name: 'idx_landing_pages_slug' }); await queryInterface.addIndex('landing_pages', { fields: ['status'], name: 'idx_landing_pages_status' }); }, async down(queryInterface) { await queryInterface.dropTable('landing_pages'); }, };