const mongoose = require("mongoose");
const dotenv = require("dotenv");
const fs = require("fs");
const path = require("path");

// Load environment variables
dotenv.config();

const AboutUs = require("../models/aboutUs");

const migrate = async () => {
    try {
        console.log("🚀 Starting About Us migration...");

        // 1. Connect to MongoDB
        await mongoose.connect(process.env.MONGODB_URI);
        console.log("✅ MongoDB Connected");

        // 2. Read about.json from Backend (Source of Truth)
        const jsonPath = path.join(__dirname, "../data/about.json");
        if (!fs.existsSync(jsonPath)) {
            throw new Error(`Source about.json not found at: ${jsonPath}`);
        }

        const rawData = fs.readFileSync(jsonPath, "utf8");
        const jsonData = JSON.parse(rawData);
        console.log("✅ Read about.json successfully");

        // 3. Delete existing AboutUs documents (Singleton pattern)
        await AboutUs.deleteMany({});
        console.log("✅ Cleared existing AboutUs collection");

        // 4. Create new AboutUs document with JSON data
        const newAboutUs = new AboutUs(jsonData);
        await newAboutUs.save();
        console.log("✅ Successfully migrated about.json data to MongoDB");

    } catch (error) {
        console.error("❌ Migration failed:", error.message);
    } finally {
        // 5. Close connection
        await mongoose.connection.close();
        console.log("👋 Database connection closed");
        process.exit(0);
    }
};

migrate();
