Saltar al contenido principal

RF50: Usuario agrega curso a lista 'ver más tarde'

Descripción

Como usuario autenticado, quiero guardar un curso en mi lista "ver más tarde" para retomarlo cuando tenga tiempo.

Crea una relación entre el usuario y el curso. Es idempotente: guardar dos veces el mismo curso no lo duplica.

CampoValor
MóduloCourses Module
ActorUsuario autenticado
EndpointPOST /courses/watch-later ({ courseId })
PrecondicionesSesión activa; el curso existe y está publicado
PrioridadBaja (post-MVP)
EtapaMBI 1
Requisitos relacionadosRF49, RF51

Reglas de negocio

  • RN-50.1 — Solo se pueden guardar cursos existentes y publicados.
  • RN-50.2 — La relación es única por (usuario, curso); guardar de nuevo es idempotente.
  • RN-50.3 — La lista pertenece al user_id del JWT.

Validaciones de entrada

CampoReglasMensaje de error
courseIdObligatorio. UUID de curso publicado."Curso no encontrado." (404)
AuthorizationBearer válido."Sesión no válida." (401)

Criterios de aceptación

Escenario 1: Agregar curso exitoso

Dado que veo un curso publicado, Cuando lo agrego a "ver más tarde", Entonces el sistema crea la relación y responde 201 Created, Y el curso aparece en mi lista (RF49).

Escenario 2: Curso ya guardado (idempotencia)

Dado que el curso ya está en mi lista, Cuando lo agrego de nuevo, Entonces el sistema responde 200 OK sin duplicarlo.

Escenario 3: Curso inexistente o no publicado

Dado que envío un courseId que no existe o no está publicado, Cuando intento agregarlo, Entonces el sistema responde 404 Not Found.

Criterios no funcionales

  • Respuesta < 500 ms; restricción de unicidad en DB.
  • Comunicación TLS 1.2+.

Diagrama de secuencia