const express = require('express');
const path = require('path');
const fs = require('fs');

const router = express.Router();

// Đảm bảo các thư mục cần thiết tồn tại khi khởi động router
const uploadDir = process.env.UPLOAD_DIR ? path.resolve(process.env.UPLOAD_DIR) : path.join(__dirname, '../uploads');
const tempDir = path.join(uploadDir, 'temp');
if (!fs.existsSync(uploadDir)) fs.mkdirSync(uploadDir, { recursive: true });
if (!fs.existsSync(tempDir)) fs.mkdirSync(tempDir, { recursive: true });

// Import các sub-routers
const adminRoutes = require('./adminRoutes');
const sceneRoutes = require('./sceneRoutes');
const tourRoutes = require('../middlewares/TourController'); // Đường dẫn thực tế hiện tại
const authRoutes = require('./authRoutes');
const userRoutes = require('./userRoutes'); 
const hotspotRoutes = require('./hotspotRoutes');
const assetRoutes = require('./assetRoutes');

// Các module chưa tách hết (có thể tách tiếp ở Giai đoạn sau)
// Ở đây tôi gắn các route còn lại trực tiếp để không làm gián đoạn hệ thống
router.use('/admin', adminRoutes);
router.use('/auth', authRoutes); // Tích hợp API Đăng ký/Đăng nhập
router.get('/share/:id', sceneRoutes.shareScene); // Route hỗ trợ Open Graph
router.use('/tours', tourRoutes); // Thêm các route cho Tour
router.use('/scenes', sceneRoutes);
router.use('/users', userRoutes);
router.use('/me', userRoutes); // Frontend gọi /api/me/profile, sẽ trỏ vào userRoutes
router.use('/hotspots', hotspotRoutes);
router.use('/', assetRoutes); // Xử lý các endpoint /assets và /me/assets

module.exports = router;
