"use strict"; module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable("Messages", { id: { type: Sequelize.UUID, defaultValue: Sequelize.UUIDV4, primaryKey: true, }, senderId: { type: Sequelize.UUID, allowNull: false, references: { model: "Users", key: "id", }, onUpdate: "CASCADE", onDelete: "CASCADE", }, receiverId: { type: Sequelize.UUID, allowNull: false, references: { model: "Users", key: "id", }, onUpdate: "CASCADE", onDelete: "CASCADE", }, content: { type: Sequelize.TEXT, allowNull: false, }, isRead: { type: Sequelize.BOOLEAN, defaultValue: false, }, imagePath: { type: Sequelize.STRING, allowNull: true, }, createdAt: { type: Sequelize.DATE, allowNull: false, }, updatedAt: { type: Sequelize.DATE, allowNull: false, }, }); // Add indexes await queryInterface.addIndex("Messages", ["senderId"]); await queryInterface.addIndex("Messages", ["receiverId"]); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable("Messages"); }, };