const mongoose = require('mongoose');
const connectDB = require('../config/db');
const Scene = require('../models/Scene');

/**
 * Script sửa lỗi các Scene mồ côi (không có tourId)
 * Logic: Nếu một Scene không có tourId, nó sẽ được gán tourId = _id (trở thành Root)
 */
const fixOrphans = async () => {
    try {
        await connectDB();
        
        // Sử dụng logic quét rộng tương tự audit script để tìm tất cả các loại "rác" tourId
        const allScenes = await Scene.find({});
        const orphans = allScenes.filter(s => 
            !s.tourId || 
            s.tourId === "" || 
            s.tourId === "null" || 
            s.tourId === "undefined"
        );

        console.log(`Tìm thấy ${orphans.length} scene mồ côi. Đang xử lý...`);

        for (const scene of orphans) {
            // [FIX] Sử dụng updateOne trực tiếp trên collection để bypass Schema validation
            // Đảm bảo dữ liệu CHẮC CHẮN được ghi xuống Database
            await Scene.collection.updateOne(
                { _id: scene._id },
                { $set: { tourId: scene._id } }
            );
            console.log(`- [FIXED] Scene: ${scene.name || scene.title} (ID: ${scene._id}) -> Đã trở thành Tour Gốc`);
        }

        console.log('\n--- HOÀN TẤT SỬA LỖI DỮ LIỆU ---');
        mongoose.connection.close();
    } catch (err) {
        console.error('Lỗi thực thi:', err);
        process.exit(1);
    }
};

fixOrphans();