Saltar al contenido principal

RF26: Usuario actualiza estado de recomendación a pendiente

Descripción

Como usuario autenticado, quiero marcar una recomendación como "pendiente" para indicar que pienso realizarla y darle seguimiento.

Cambia el estado de una recomendación a pending. Solo el dueño de la recomendación puede modificarla.

CampoValor
MóduloFinance Data Collection (FDC) Module — Recomendaciones
ActorUsuario autenticado
EndpointPATCH /recommendations/:id/status ({ status: 'pending' })
PrecondicionesSesión activa; la recomendación pertenece al usuario
PrioridadMedia (MVP)
EtapaMVP
Requisitos relacionadosRF25, RF27

Reglas de negocio

  • RN-26.1 — Solo el dueño (user_id del JWT) puede cambiar el estado de su recomendación.
  • RN-26.2 — Transición válida: newpending (y completedpending si el usuario reabre el seguimiento).
  • RN-26.3 — El cambio de estado se registra con marca de tiempo para análisis de adopción.

Validaciones de entrada

CampoReglasMensaje de error
idObligatorio. UUID existente y del usuario."Recomendación no encontrada." (404)
statusDebe ser pending."Estado no válido." (400)

Criterios de aceptación

Escenario 1: Marcar como pendiente exitoso

Dado que tengo una recomendación nueva, Cuando la marco como pendiente, Entonces el sistema actualiza su estado a pending y responde 200 OK, Y el dashboard refleja el nuevo estado.

Escenario 2: Recomendación inexistente o ajena (seguridad)

Dado que envío un id que no existe o no es mío, Cuando intento cambiar el estado, Entonces el sistema responde 404 Not Found sin revelar si pertenece a otro usuario.

Escenario 3: Estado no válido

Dado que envío un valor de estado fuera del enum permitido, Cuando el backend valida, Entonces responde 400 con "Estado no válido".

Criterios no funcionales

  • Operación idempotente (marcar dos veces como pendiente no cambia el resultado).
  • Respuesta < 500 ms; comunicación TLS 1.2+.

Diagrama de secuencia