backend/src/routes/contactoEmergencia.routes.js

/**
 * @file Rutas para los contactos de emergencia.
 * @description Define los endpoints para las operaciones CRUD de los contactos de emergencia.
 * @requires express
 * @requires ../controllers/contactoEmergencia.controller
 * @requires ../middleware/authMiddleware
 */
const express = require('express');
const router = express.Router();
const contactoController = require('../controllers/contactoEmergencia.controller');
const { authMiddleware } = require('../middleware/authMiddleware');

// Rutas para los contactos de emergencia
/**
 * @name POST /api/contactos
 * @description Crea un nuevo contacto de emergencia.
 * @function
 * @memberof module:routes/contactoEmergencia
 * @param {string} path - URL del endpoint.
 * @param {function} middleware - Middleware de autenticación.
 * @param {function} middleware - Controlador para manejar la petición.
 */
router.post('/', authMiddleware, contactoController.createContacto);

/**
 * @name GET /api/contactos
 * @description Obtiene todos los contactos de emergencia del usuario autenticado.
 * @function
 * @memberof module:routes/contactoEmergencia
 * @param {string} path - URL del endpoint.
 * @param {function} middleware - Middleware de autenticación.
 * @param {function} middleware - Controlador para manejar la petición.
 */
router.get('/', authMiddleware, contactoController.getContactos);

/**
 * @name GET /api/contactos/:id
 * @description Obtiene un contacto de emergencia específico.
 * @function
 * @memberof module:routes/contactoEmergencia
 * @param {string} path - URL del endpoint.
 * @param {function} middleware - Middleware de autenticación.
 * @param {function} middleware - Controlador para manejar la petición.
 */
router.get('/:id', authMiddleware, contactoController.getContactoById);

/**
 * @name PUT /api/contactos/:id
 * @description Actualiza un contacto de emergencia específico.
 * @function
 * @memberof module:routes/contactoEmergencia
 * @param {string} path - URL del endpoint.
 * @param {function} middleware - Middleware de autenticación.
 * @param {function} middleware - Controlador para manejar la petición.
 */
router.put('/:id', authMiddleware, contactoController.updateContacto);

/**
 * @name DELETE /api/contactos/:id
 * @description Elimina un contacto de emergencia específico.
 * @function
 * @memberof module:routes/contactoEmergencia
 * @param {string} path - URL del endpoint.
 * @param {function} middleware - Middleware de autenticación.
 * @param {function} middleware - Controlador para manejar la petición.
 */
router.delete('/:id', authMiddleware, contactoController.deleteContacto);

/**
 * @name POST /api/contactos-emergencia/:contactoId/send-email
 * @description Envía un email de emergencia a un contacto.
 * @function
 * @memberof module:routes/contactoEmergencia
 */
router.post('/:contactoId/send-email', authMiddleware, contactoController.sendEmergencyEmail);

module.exports = router;