// src/routes/measurementRoutes.js
const express = require('express');
const router = express.Router();
const MeasurementController = require('../controllers/measurementController');

/**
 * @swagger
 * /measurements:
 *   get:
 *     summary: Récupère toutes les mesures
 *     responses:
 *       200:
 *         description: Liste de toutes les mesures
 *       404:
 *         description: Aucune mesure trouvée
 *       500:
 *         description: Erreur serveur
 */
router.get('/measurements', MeasurementController.getAllMeasurements);

/**
 * @swagger
 * /measurements/{id}:
 *   get:
 *     summary: Récupère une mesure par ID
 *     parameters:
 *       - in: path
 *         name: id
 *         required: true
 *         schema:
 *           type: integer
 *         description: ID de la mesure
 *     responses:
 *       200:
 *         description: Détails de la mesure
 *       400:
 *         description: ID de mesure invalide
 *       404:
 *         description: Mesure non trouvée
 *       500:
 *         description: Erreur serveur
 */
router.get('/measurements/:id', MeasurementController.getMeasurementById);

/**
 * @swagger
 * /measurements/{projectId}/{orderId}:
 *   get:
 *     summary: Récupère une mesure par projet ID et ordre ID
 *     parameters:
 *       - in: path
 *         name: projectId
 *         required: true
 *         schema:
 *           type: integer
 *         description: ID du projet
 *       - in: path
 *         name: orderId
 *         required: true
 *         schema:
 *           type: integer
 *         description: ID d'ordre
 *     responses:
 *       200:
 *         description: Détails de la mesure
 *       400:
 *         description: IDs invalides
 *       404:
 *         description: Mesure non trouvée
 *       500:
 *         description: Erreur serveur
 */
router.get('/measurements/:projectId/:orderId', MeasurementController.getMeasurementByProjectAndOrderId);

/**
 * @swagger
 * /measurements/{id}:
 *   delete:
 *     summary: Supprime une mesure
 *     parameters:
 *       - in: path
 *         name: id
 *         required: true
 *         schema:
 *           type: integer
 *         description: ID de la mesure
 *     responses:
 *       200:
 *         description: Mesure supprimée avec succès
 *       400:
 *         description: ID de mesure invalide
 *       404:
 *         description: Mesure non trouvée
 *       500:
 *         description: Erreur serveur
 */
router.delete('/measurements/:id', MeasurementController.deleteMeasurement);

module.exports = router;