'use strict'; module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable('course_achievements', { id: { type: Sequelize.BIGINT, primaryKey: true, autoIncrement: true }, course_id: { type: Sequelize.BIGINT, allowNull: false }, achievement_key: { type: Sequelize.STRING(100), allowNull: false }, order_index: { type: Sequelize.INTEGER, allowNull: false, defaultValue: 0 }, createdAt: { type: Sequelize.DATE, allowNull: false }, updatedAt: { type: Sequelize.DATE, allowNull: false }, }); await queryInterface.addIndex('course_achievements', ['course_id']); await queryInterface.addConstraint('course_achievements', { fields: ['course_id', 'achievement_key'], type: 'unique', name: 'course_achievements_course_id_key_unique', }); }, async down(queryInterface) { await queryInterface.dropTable('course_achievements'); }, };