/* eslint-disable */ module.exports = { async up(queryInterface, Sequelize) { // Ensure column exists await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle ADD COLUMN IF NOT EXISTS condition integer; `); // Backfill nulls (legacy data) await queryInterface.sequelize.query(` UPDATE falukant_data.vehicle SET condition = 100 WHERE condition IS NULL; `); // Clamp out-of-range values defensively await queryInterface.sequelize.query(` UPDATE falukant_data.vehicle SET condition = GREATEST(0, LEAST(100, condition)) WHERE condition < 0 OR condition > 100; `); // Default + NOT NULL await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle ALTER COLUMN condition SET DEFAULT 100; `); await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle ALTER COLUMN condition SET NOT NULL; `); // Check constraint 0..100 await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle DROP CONSTRAINT IF EXISTS vehicle_condition_0_100_chk; `); await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle ADD CONSTRAINT vehicle_condition_0_100_chk CHECK (condition >= 0 AND condition <= 100); `); }, async down(queryInterface, Sequelize) { // Keep the column, but remove constraint/default to be reversible await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle DROP CONSTRAINT IF EXISTS vehicle_condition_0_100_chk; `); await queryInterface.sequelize.query(` ALTER TABLE falukant_data.vehicle ALTER COLUMN condition DROP DEFAULT; `); // NOT NULL not reverted to avoid introducing NULLs on rollback; can be adjusted if needed }, };