"use strict";

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.addColumn("Rentals", "stripeDisputeStatus", {
      type: Sequelize.ENUM("open", "won", "lost", "warning_closed"),
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeId", {
      type: Sequelize.STRING,
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeReason", {
      type: Sequelize.STRING,
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeAmount", {
      type: Sequelize.INTEGER,
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeCreatedAt", {
      type: Sequelize.DATE,
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeEvidenceDueBy", {
      type: Sequelize.DATE,
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeClosedAt", {
      type: Sequelize.DATE,
      allowNull: true,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeLost", {
      type: Sequelize.BOOLEAN,
      defaultValue: false,
    });
    await queryInterface.addColumn("Rentals", "stripeDisputeLostAmount", {
      type: Sequelize.INTEGER,
      allowNull: true,
    });
  },

  down: async (queryInterface) => {
    await queryInterface.removeColumn("Rentals", "stripeDisputeStatus");
    await queryInterface.removeColumn("Rentals", "stripeDisputeId");
    await queryInterface.removeColumn("Rentals", "stripeDisputeReason");
    await queryInterface.removeColumn("Rentals", "stripeDisputeAmount");
    await queryInterface.removeColumn("Rentals", "stripeDisputeCreatedAt");
    await queryInterface.removeColumn("Rentals", "stripeDisputeEvidenceDueBy");
    await queryInterface.removeColumn("Rentals", "stripeDisputeClosedAt");
    await queryInterface.removeColumn("Rentals", "stripeDisputeLost");
    await queryInterface.removeColumn("Rentals", "stripeDisputeLostAmount");
    await queryInterface.sequelize.query(
      'DROP TYPE IF EXISTS "enum_Rentals_stripeDisputeStatus";'
    );
  },
};
