// Маршруты аутентификации для API
const express = require('express');
const router = express.Router();

// Импортируем функции из контроллера
const { 
    registerUser, 
    loginUser,
    getMe
} = require('../controllers/authController');

// Импортируем middleware для защиты маршрутов
const { protect } = require('../middleware/authMiddleware');
const { checkDeviceBlock, recordDeviceActivity } = require('../middleware/deviceBlockMiddleware');

// --- НАЧАЛО ИЗМЕНЕНИЯ ---
// Дополнительная отладка: Проверяем, что protect действительно функция
console.log('[DEBUG] authRoutes.js - Тип импортированного protect:', typeof protect);
if (typeof protect !== 'function') {
  console.error('[КРИТИЧЕСКАЯ ОШИБКА] authRoutes.js - protect middleware НЕ является функцией! Маршрут /me НЕ будет защищен.');
  // Можно даже выбросить ошибку, чтобы сервер не стартовал с неработающей аутентификацией
  throw new Error('Middleware protect не загружен корректно в authRoutes.js');
}
// --- КОНЕЦ ИЗМЕНЕНИЯ ---

// Отладочные логи для проверки типов импортированных функций
console.log('[DEBUG] authRoutes.js - typeof registerUser:', typeof registerUser);
console.log('[DEBUG] authRoutes.js - typeof loginUser:', typeof loginUser);
console.log('[DEBUG] authRoutes.js - typeof getMe:', typeof getMe);
console.log('[DEBUG] authRoutes.js - typeof protect:', typeof protect);
console.log('[DEBUG] authRoutes.js - typeof checkDeviceBlock:', typeof checkDeviceBlock);

// Регистрация пользователя - с проверкой блокировки устройства
router.post('/register', checkDeviceBlock, registerUser);

// Вход пользователя - с проверкой блокировки устройства и записью активности
router.post('/login', checkDeviceBlock, loginUser, recordDeviceActivity);

// Получение профиля - защищенный доступ с записью активности устройства
router.get('/me', protect, recordDeviceActivity, getMe);

// Экспортируем маршруты
module.exports = router;
// Конец файла