const pool = require('../db');

async function run() {
    console.log('Starting compliance_item_history metric_id column migration...');
    try {
        // Idempotent: only add column if it doesn't already exist
        const { rows } = await pool.query(`
            SELECT column_name
            FROM information_schema.columns
            WHERE table_name = 'compliance_item_history'
              AND column_name = 'metric_id'
        `);

        if (rows.length === 0) {
            await pool.query(`
                ALTER TABLE compliance_item_history
                ADD COLUMN metric_id TEXT
            `);
            console.log('✓ metric_id column added to compliance_item_history');
        } else {
            console.log('✓ metric_id column already exists (skipped)');
        }

        await pool.query(`
            CREATE INDEX IF NOT EXISTS idx_compliance_history_hostname_metric
            ON compliance_item_history(hostname, metric_id)
        `);
        console.log('✓ hostname/metric_id index created');

        console.log('Migration complete.');
    } catch (err) {
        console.error('Migration failed:', err.message);
        throw err;
    }
}

module.exports = { run };

// Self-execute when run directly
if (require.main === module) {
    run().then(() => process.exit(0)).catch(() => process.exit(1));
}
