#!/usr/bin/env node

/**
 * Migration: Add visibility and order to value pluralism documents
 *
 * This migration ensures the 3 value pluralism documents are properly
 * configured to display in the docs.html sidebar.
 */

require('dotenv').config();
const { MongoClient } = require('mongodb');

const MONGO_URI = process.env.MONGODB_URI || process.env.MONGO_URI || 'mongodb://localhost:27017';
const DB_NAME = process.env.MONGODB_DB || process.env.MONGO_DB || 'tractatus_prod';

const UPDATES = [
  {
    slug: 'value-pluralism-faq',
    category: 'getting-started',
    visibility: 'public',
    order: 3
  },
  {
    slug: 'pluralistic-values-research-foundations',
    category: 'research-theory',
    visibility: 'public',
    order: 1
  },
  {
    slug: 'pluralistic-values-deliberation-plan-v2',
    category: 'technical-reference',
    visibility: 'public',
    order: 12
  }
];

async function migrate() {
  console.log('🔧 Starting value pluralism documents migration...');
  console.log(`   Database: ${DB_NAME}`);
  console.log('');

  const client = new MongoClient(MONGO_URI);

  try {
    await client.connect();
    const db = client.db(DB_NAME);
    const collection = db.collection('documents');

    for (const update of UPDATES) {
      const { slug, ...fields } = update;

      const result = await collection.updateOne(
        { slug },
        { $set: fields }
      );

      if (result.matchedCount === 0) {
        console.log(`   ⚠️  Document not found: ${slug}`);
      } else if (result.modifiedCount === 0) {
        console.log(`   ℹ️  Already up to date: ${slug}`);
      } else {
        console.log(`   ✅ Updated: ${slug}`);
        console.log(`      - category: ${fields.category}`);
        console.log(`      - visibility: ${fields.visibility}`);
        console.log(`      - order: ${fields.order}`);
      }
      console.log('');
    }

    // Verify
    console.log('🔍 Verification:');
    const docs = await collection.find(
      { slug: { $in: UPDATES.map(u => u.slug) } },
      { projection: { slug: 1, category: 1, visibility: 1, order: 1, _id: 0 } }
    ).toArray();

    docs.forEach(doc => {
      console.log(`   ${doc.slug}:`);
      console.log(`      category: ${doc.category}`);
      console.log(`      visibility: ${doc.visibility}`);
      console.log(`      order: ${doc.order}`);
    });

    console.log('');
    console.log('✨ Migration complete!');

  } catch (error) {
    console.error('❌ Migration failed:', error);
    process.exit(1);
  } finally {
    await client.close();
  }
}

migrate();
