Issue Title: Implementar endpoint para marcar un producto como "descontinuado"
Descripción:
Desarrollar un nuevo endpoint que permita marcar un producto como descontinuado. Acepta el id del producto en la URL y un objeto que contenga un motivo de descontinuación. Esto puede ser útil para mantener el registro de productos que ya no están disponibles.
Tareas a realizar:
Crear el endpoint en el controlador:
Desarrollar un método en ProductoController para manejar las solicitudes POST al endpoint /productos/{id}/descontinuar.
Definir el cuerpo de la solicitud:
Crear una clase DTO que contenga el campo motivo para la descontinuación del producto.
Implementar el servicio:
Crear un método en IProductoService que marque el producto como descontinuado si existe y registre el motivo de la descontinuación. Esto podría implicar actualizar un campo en la entidad Producto.
Actualizar el repositorio si es necesario:
Asegurarse de que el repositorio ProductoRepository tenga un método adecuado para actualizar el estado del producto y registrar el motivo de la descontinuación.
Pruebas del endpoint:
Probar que el endpoint funcione correctamente utilizando herramientas como Postman. Verificar que:
Se marque correctamente un producto como descontinuado.
Se registre el motivo de descontinuación.
Devuelva un error si el producto no existe.
Documentación:
Actualizar la documentación de la API para incluir el nuevo endpoint /productos/{id}/descontinuar, describiendo su funcionalidad y los parámetros de entrada.
Criterios de aceptación:
El endpoint debe permitir marcar un producto como descontinuado.
Debe manejar adecuadamente los casos en que el producto no exista.
El código debe seguir las mejores prácticas de desarrollo en Spring Boot.
Issue Title: Implementar endpoint para marcar un producto como "descontinuado"
Descripción:
Desarrollar un nuevo endpoint que permita marcar un producto como descontinuado. Acepta el
id
del producto en la URL y un objeto que contenga un motivo de descontinuación. Esto puede ser útil para mantener el registro de productos que ya no están disponibles.Tareas a realizar:
Crear el endpoint en el controlador:
ProductoController
para manejar las solicitudes POST al endpoint/productos/{id}/descontinuar
.Definir el cuerpo de la solicitud:
motivo
para la descontinuación del producto.Implementar el servicio:
IProductoService
que marque el producto como descontinuado si existe y registre el motivo de la descontinuación. Esto podría implicar actualizar un campo en la entidadProducto
.Actualizar el repositorio si es necesario:
ProductoRepository
tenga un método adecuado para actualizar el estado del producto y registrar el motivo de la descontinuación.Pruebas del endpoint:
Documentación:
/productos/{id}/descontinuar
, describiendo su funcionalidad y los parámetros de entrada.Criterios de aceptación: