31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
// Add paymentFailedNotifiedAt - tracks when owner notified renter about failed payment
|
|
await queryInterface.addColumn("Rentals", "paymentFailedNotifiedAt", {
|
|
type: Sequelize.DATE,
|
|
allowNull: true,
|
|
});
|
|
|
|
// Add paymentMethodUpdatedAt - tracks last payment method update for rate limiting
|
|
await queryInterface.addColumn("Rentals", "paymentMethodUpdatedAt", {
|
|
type: Sequelize.DATE,
|
|
allowNull: true,
|
|
});
|
|
|
|
// Add paymentMethodUpdateCount - count of updates within time window for rate limiting
|
|
await queryInterface.addColumn("Rentals", "paymentMethodUpdateCount", {
|
|
type: Sequelize.INTEGER,
|
|
allowNull: true,
|
|
defaultValue: 0,
|
|
});
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.removeColumn("Rentals", "paymentMethodUpdateCount");
|
|
await queryInterface.removeColumn("Rentals", "paymentMethodUpdatedAt");
|
|
await queryInterface.removeColumn("Rentals", "paymentFailedNotifiedAt");
|
|
},
|
|
};
|