require('dotenv').config(); const connectDB = require('../config/database'); /** * Migration: migrate_menu_header_ggcamp * Created: 21:40:38 11/12/2025 */ async function migrate() { try { // Kết nối database await connectDB(); console.log('Starting migration: migrate_menu_header_ggcamp...'); const mongoose = require('mongoose'); const fs = require('fs').promises; const path = require('path'); const Menu = require('../models/menuHeader'); // Xóa tất cả dữ liệu menu cũ await Menu.deleteMany({}); // Đọc JSON file const jsonPath = path.join(__dirname, '../data/menu-header.json'); const jsonData = JSON.parse(await fs.readFile(jsonPath, 'utf8')); // Tạo menu items (đơn giản, không có fetch/programmes) for (const menuData of jsonData.menus) { // Chỉ giữ lại các field cần thiết: menuid, parent, title, url, order, type const menuItem = { menuid: menuData.menuid, parent: menuData.parent || null, title: menuData.title, url: menuData.url, order: menuData.order || 0, type: menuData.type || 'static', fetch: false, // Không dùng fetch isActive: true // Mặc định active }; await Menu.create(menuItem); } console.log('✅ Menu header migration completed successfully!'); await mongoose.disconnect(); process.exit(0); } catch (error) { console.error('❌ Migration error:', error); process.exit(1); } } // Chạy migration nếu được gọi trực tiếp if (require.main === module) { migrate(); } module.exports = { migrate };