"use strict"; module.exports = { up: async (queryInterface, Sequelize) => { const tableExists = await queryInterface .describeTable("Invoices") .then(() => true) .catch(() => false); if (tableExists) { await queryInterface.dropTable("Invoices", { cascade: true }); } await queryInterface.createTable("Invoices", { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true, allowNull: false, }, userId: { type: Sequelize.INTEGER, allowNull: false, references: { model: "Users", key: "id", }, onDelete: "CASCADE", }, totalPaymentAmount: { type: Sequelize.FLOAT, allowNull: false, }, status: { type: Sequelize.ENUM("pending", "paid"), allowNull: false, defaultValue: "pending", }, createdAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.fn("NOW"), }, updatedAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.fn("NOW"), }, }); }, down: async (queryInterface, Sequelize) => { await queryInterface.dropTable("Invoices", { cascade: true }); }, };