Fix: los comentarios normales de instancia eliminados o editados dejan marca en el listado
Mantis 0044483, 0044484
Qué
El listado de comentarios normales de una instancia ahora incluye los comentarios eliminados, sin su texto, e informa si un comentario fue editado. Acompaña a los Mantis 0044483 y 0044484 (editar y eliminar comentarios normales desde el frontend).
Por qué
Al habilitar editar y eliminar en la pantalla, un comentario eliminado desaparecía del seguimiento sin dejar rastro visible, y uno editado no se distinguía del original. La información seguía en la base y en la auditoría, pero quien lee el seguimiento no tenía forma de saber que faltaba o había cambiado algo. Con la marca, el propio listado lo muestra y la auditoría queda para el detalle.
Cambios
-
ComentarioNormalInstanciaService.listarPorInstancia: devuelve los comentariosACTIVOyELIMINADO. En losELIMINADO,contenidova ennull. -
ComentarioNormalInstanciaResponseDTO: nuevo campoeditado. Se calcula comparandoupdated_atconcreated_at(con un margen de 1 segundo, porque al crear las dos fechas pueden diferir en milisegundos). En un comentario eliminado,updatedAtes la fecha de eliminación. -
ComentarioNormalInstanciaController: el listado se ordena porcreatedAtpor defecto, para que un comentario editado o eliminado no cambie de posición. -
ComentarioNormalInstanciaService.editar: usasaveAndFlushpara que la respuesta ya traiga la fecha de la edición. -
ComentarioNormalInstanciaRepository:findByInstancia_CodInstanciaAndEstadoInreemplaza afindByInstancia_CodInstanciaAndEstado, que quedaba sin uso. - Tests del service: 3 casos nuevos (eliminado sin contenido, editado, recién creado no editado) y ajuste de los de listar y editar.
No cambia: obtener por id, editar y eliminar siguen operando solo sobre comentarios activos. No hay reactivación de comentarios. Los comentarios confidenciales no se tocan.
Cómo probar
-
GET /instancias/{id}/comentarios-normalesen una instancia con comentarios: cada uno traeeditado: false. - Editar uno con
PUT /instancias/{id}/comentarios-normales/{idComentario}y volver a listar: traeeditado: true,updatedAtcon la fecha de la edición, y sigue en la misma posición. - Eliminar uno con
DELETEy volver a listar: sigue en la lista conestado: "ELIMINADO"ycontenido: null. -
GET,PUToDELETEsobre el comentario eliminado por id: 404, como antes.
Tests: ./mvnw test -Dtest='ComentarioNormalInstancia*Test'
Cambios en BD
Ninguno.
A tener en cuenta
Mergear junto con el MR de frontend fix/eliminar-comentario-normal-instancia: el frontend actual no conoce el estado ELIMINADO y mostraría esos comentarios como una fila sin texto.