39998-vm/backend/src/db/migrations/20260515020000-create-billing-settings.js
Flatlogic Bot 83cdb092cd 7
2026-05-15 19:17:21 +00:00

71 lines
1.8 KiB
JavaScript

module.exports = {
async up(queryInterface, Sequelize) {
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.createTable(
'billing_settings',
{
id: {
type: Sequelize.DataTypes.UUID,
defaultValue: Sequelize.DataTypes.UUIDV4,
primaryKey: true,
},
key: {
type: Sequelize.DataTypes.TEXT,
allowNull: false,
unique: true,
defaultValue: 'default',
},
stripe_secret_key: {
type: Sequelize.DataTypes.TEXT,
},
stripe_webhook_secret: {
type: Sequelize.DataTypes.TEXT,
},
createdById: {
type: Sequelize.DataTypes.UUID,
references: {
key: 'id',
model: 'users',
},
},
updatedById: {
type: Sequelize.DataTypes.UUID,
references: {
key: 'id',
model: 'users',
},
},
createdAt: { type: Sequelize.DataTypes.DATE },
updatedAt: { type: Sequelize.DataTypes.DATE },
deletedAt: { type: Sequelize.DataTypes.DATE },
importHash: {
type: Sequelize.DataTypes.STRING(255),
allowNull: true,
unique: true,
},
},
{ transaction },
);
await transaction.commit();
} catch (error) {
await transaction.rollback();
throw error;
}
},
async down(queryInterface) {
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.dropTable('billing_settings', { transaction });
await transaction.commit();
} catch (error) {
await transaction.rollback();
throw error;
}
},
};