const mongoose = require('mongoose'); const fs = require('fs'); const path = require('path'); const connectDB = require('../config/db'); const Scene = require('../models/Scene'); const Asset = require('../models/Asset'); const reset = async () => { try { console.log('--- Bắt đầu quá trình Reset Dữ liệu ---'); // 1. Kết nối Database await connectDB(); // 2. Xóa bản ghi trong Database console.log('1. Đang xóa dữ liệu trong MongoDB...'); const deletedScenes = await Scene.deleteMany({}); const deletedAssets = await Asset.deleteMany({}); console.log(`- Đã xóa ${deletedScenes.deletedCount} scenes.`); console.log(`- Đã xóa ${deletedAssets.deletedCount} assets.`); // 3. Dọn dẹp tệp tin vật lý const uploadDir = path.join(__dirname, '../uploads'); const tempDir = path.join(uploadDir, 'temp'); console.log('2. Đang dọn dẹp thư mục uploads...'); const directories = [uploadDir, tempDir]; directories.forEach(dir => { if (fs.existsSync(dir)) { const files = fs.readdirSync(dir); for (const file of files) { const fullPath = path.join(dir, file); // Chỉ xóa file, không xóa thư mục (như temp) và tránh xóa file ẩn/cấu hình if (fs.lstatSync(fullPath).isFile() && !file.startsWith('.')) { fs.unlinkSync(fullPath); } } } }); console.log('--- Hoàn tất reset hệ thống! ---'); // Đóng kết nối mongoose.connection.close(); process.exit(0); } catch (err) { console.error('Lỗi nghiêm trọng trong quá trình reset:', err); mongoose.connection.close(); process.exit(1); } }; reset();