const mongoose = require('mongoose'); const AboutUs = require('../models/aboutUs'); const fs = require('fs'); require('dotenv').config(); // Load and clean JSON data const raw = fs.readFileSync(require('path').join(__dirname, '..', 'data', 'aboutUs.json'), 'utf8'); let data = JSON.parse(raw || '{}'); // Remove _id fields recursively to avoid conflicts function stripIds(obj) { if (Array.isArray(obj)) return obj.map(i => stripIds(i)); if (obj && typeof obj === 'object') { const out = {}; for (const k in obj) { if (k !== '_id') out[k] = stripIds(obj[k]); } return out; } return obj; } data = stripIds(data); // Check for --dry-run flag const dryRun = process.argv.includes('--dry-run') || process.argv.includes('-n'); async function importAboutUs() { try { const dbUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/ggcamps'; console.log('šŸ“ Using DB URI:', dbUri); if (dryRun) { console.log('\nšŸ” === DRY RUN MODE ==='); console.log('Document to be upserted (preview only, no DB changes):\n'); console.log(JSON.stringify(data, null, 2)); console.log('\n=== END DRY RUN ===\n'); console.log('To actually import, run without --dry-run flag'); process.exit(0); } console.log('šŸ”„ Connecting to database...'); await mongoose.connect(dbUri); console.log('āœ“ Connected to database'); // Safe upsert: update existing doc or create new one console.log('šŸ“„ Upserting AboutUs document (safe mode)...'); const result = await AboutUs.findOneAndUpdate({}, data, { upsert: true, new: true, setDefaultsOnInsert: true }); console.log('āœ… Successfully upserted AboutUs data!'); console.log('šŸ“ Document ID:', result._id.toString()); console.log('šŸ“Š Data structure:'); console.log(' - Hero:', data.hero ? 'āœ“' : 'āœ—'); console.log(' - Introduction:', data.introduction ? 'āœ“' : 'āœ—'); console.log(' - Introduction Services:', data.introduction?.services?.length || 0, 'items'); console.log(' - Statistics:', data.statistics ? 'āœ“' : 'āœ—'); console.log(' - Statistics Items:', data.statistics?.items?.length || 0, 'items'); console.log(' - Accommodation:', data.accommodation ? 'āœ“' : 'āœ—'); console.log(' - Accommodation Features:', data.accommodation?.features?.length || 0, 'items'); console.log(' - Activities:', data.activities ? 'āœ“' : 'āœ—'); console.log(' - Activities Gallery:', data.activities?.gallery?.length || 0, 'items'); console.log(' - Newsletter:', data.newsletter ? 'āœ“' : 'āœ—'); console.log(' - Events:', data.events ? 'āœ“' : 'āœ—'); console.log(' - Events Items:', data.events?.items?.length || 0, 'items'); process.exit(0); } catch (error) { console.error('āŒ Error:', error.message); console.error(error); process.exit(1); } } // Run import importAboutUs();