"use strict"; module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.createTable("comments", { id: { type: Sequelize.UUID, allowNull: false, primaryKey: true }, data: { type: Sequelize.JSONB, allowNull: false }, documentId: { type: Sequelize.UUID, allowNull: false, onDelete: "cascade", references: { model: "documents" } }, parentCommentId: { type: Sequelize.UUID, allowNull: true, onDelete: "cascade", references: { model: "comments" } }, createdById: { type: Sequelize.UUID, allowNull: false, references: { model: "users" } }, resolvedAt: { type: Sequelize.DATE, allowNull: true }, resolvedById: { type: Sequelize.UUID, allowNull: true, references: { model: "users" } }, createdAt: { type: Sequelize.DATE, allowNull: false }, updatedAt: { type: Sequelize.DATE, allowNull: false }, deletedAt: { type: Sequelize.DATE, allowNull: true } }); await queryInterface.addIndex("comments", ["documentId"]); await queryInterface.addIndex("comments", ["createdAt"]); }, down: async (queryInterface, Sequelize) => { queryInterface.dropTable("comments"); } };