Source: Path/MessagePath.js

import express from 'express';
import MessagesController from '../Controller/MessagesController.js';
import fieldsRequired from '../Middlewares/RequiredFields.js';

/**
 * Représente un chemin pour les messages
 * @class messagePath
 */

/**
 * @constant {Router} messagePath
 * @description Routeur Express utilisé pour gérer les routes liées aux opérations de messages privés.
 */
const messagePath = express.Router();

/**
 * Obtenir les messages selon des filtres (ex: conversation entre deux utilisateurs).
 */
messagePath.get('/', MessagesController.getMessages);

/**
 * Créer un nouveau message (texte ou image).
 */
messagePath.post('/', fieldsRequired(["from", "to"]), MessagesController.createMessage);

/**
 * Mettre à jour un message (ex: marquer comme lu).
 */
messagePath.patch('/:id', fieldsRequired(["read"]), MessagesController.updateMessage);

/**
 * Supprimer un message.
 */
messagePath.delete('/:id', MessagesController.deleteMessage);

export default messagePath;