#!/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.MONGO_URI || 'mongodb://localhost:27017'; const DB_NAME = 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();