import { Router } from 'express';
import { authenticate, requireAdmin, requireTeacherOrAdmin } from '../middlewares/auth';
import {
  getAllBotAssignments,
  createBotAssignment,
  removeBotAssignment,
  getRecentlyAssignedUnusedBots,
} from '../controllers/botAssignmentController';

const router = Router();

/**
 * @route   GET /api/bot-assignments
 * @desc    Get all bot assignments with pagination and filtering (admin/teacher)
 * @access  Private (Admin/Teacher)
 */
router.get('/', authenticate, requireTeacherOrAdmin, getAllBotAssignments);

/**
 * @route   POST /api/bot-assignments
 * @desc    Create a new bot assignment
 * @access  Private (Admin)
 */
router.post('/', authenticate, requireAdmin, createBotAssignment);

/**
 * @route   DELETE /api/bot-assignments/:id
 * @desc    Remove a bot assignment
 * @access  Private (Admin)
 */
router.delete('/:id', authenticate, requireAdmin, removeBotAssignment);

/**
 * @route   GET /api/bot-assignments/recently-assigned
 * @desc    Get recently assigned but unused bots for a student
 * @access  Private (Student)
 */
router.get('/recently-assigned', authenticate, getRecentlyAssignedUnusedBots);

export default router; 