Source: routes/registrationRoutes.js

/**
 * @file Defines the API routes for event registration operations.
 * @module routes/registrationRoutes
 * @requires express
 * @requires ../controllers/registrationController
 * @requires ../middleware/authMiddleware
 */

const express = require("express");

/**
 * Express router for registration-related endpoints.
 * @type {express.Router}
 * @const
 * @namespace registrationRoutes
 */
const router = express.Router();

const {
  registerForEvent,
  getMyRegistrations,
  cancelRegistration,
} = require("../controllers/registrationController");
const { protect } = require("../middleware/authMiddleware");

/**
 * POST /api/registrations/events/:eventId/register
 * @function
 * @memberof registrationRoutes
 * @param {string} eventId - Event ID to register for.
 * @description Register the current user for a specific event.
 * @access Private
 */
router.post("/events/:eventId/register", protect, registerForEvent);

/**
 * GET /api/registrations/my
 * @function
 * @memberof registrationRoutes
 * @description Get all registrations for the currently logged-in user.
 * @access Private
 */
router.get("/my", protect, getMyRegistrations);

/**
 * DELETE /api/registrations/:id
 * @function
 * @memberof registrationRoutes
 * @param {string} id - Registration ID to cancel.
 * @description Cancel a specific registration by its ID.
 * @access Private
 */
router.delete("/:id", protect, cancelRegistration);

module.exports = router;