68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
/**
|
|
* Replaces stripeDisputeStatus enum with all valid Stripe dispute statuses.
|
|
* Previous enum had: open, won, lost, warning_closed
|
|
* Stripe uses: needs_response, under_review, won, lost,
|
|
* warning_needs_response, warning_under_review, warning_closed
|
|
*/
|
|
module.exports = {
|
|
up: async (queryInterface) => {
|
|
// Create new enum type with correct Stripe statuses
|
|
await queryInterface.sequelize.query(`
|
|
CREATE TYPE "enum_Rentals_stripeDisputeStatus_new" AS ENUM (
|
|
'needs_response',
|
|
'under_review',
|
|
'won',
|
|
'lost',
|
|
'warning_needs_response',
|
|
'warning_under_review',
|
|
'warning_closed'
|
|
);
|
|
`);
|
|
|
|
// Alter column to use new type
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE "Rentals"
|
|
ALTER COLUMN "stripeDisputeStatus"
|
|
TYPE "enum_Rentals_stripeDisputeStatus_new"
|
|
USING "stripeDisputeStatus"::text::"enum_Rentals_stripeDisputeStatus_new";
|
|
`);
|
|
|
|
// Drop old enum type
|
|
await queryInterface.sequelize.query(`
|
|
DROP TYPE "enum_Rentals_stripeDisputeStatus";
|
|
`);
|
|
|
|
// Rename new type to original name
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TYPE "enum_Rentals_stripeDisputeStatus_new"
|
|
RENAME TO "enum_Rentals_stripeDisputeStatus";
|
|
`);
|
|
},
|
|
|
|
down: async (queryInterface) => {
|
|
await queryInterface.sequelize.query(`
|
|
CREATE TYPE "enum_Rentals_stripeDisputeStatus_old" AS ENUM (
|
|
'open', 'won', 'lost', 'warning_closed'
|
|
);
|
|
`);
|
|
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE "Rentals"
|
|
ALTER COLUMN "stripeDisputeStatus"
|
|
TYPE "enum_Rentals_stripeDisputeStatus_old"
|
|
USING "stripeDisputeStatus"::text::"enum_Rentals_stripeDisputeStatus_old";
|
|
`);
|
|
|
|
await queryInterface.sequelize.query(`
|
|
DROP TYPE "enum_Rentals_stripeDisputeStatus";
|
|
`);
|
|
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TYPE "enum_Rentals_stripeDisputeStatus_old"
|
|
RENAME TO "enum_Rentals_stripeDisputeStatus";
|
|
`);
|
|
},
|
|
};
|