Ir al contenido
DocuGraph

ecommerce-angular-spring

US-10 Escribir reseña de producto

Como cliente registrado que ya recibió un producto, quiero dejar una reseña con estrellas y comentario, para ayudar a otros compradores a decidir (y sentir que mi opinión cuenta).

  • Dado un pedido en estado DELIVERED con un producto, cuando abro el detalle de ese producto, entonces veo la opción «Escribir reseña».
  • Dado que nunca compré el producto, cuando miro el detalle, entonces no veo la opción de reseñar (solo lectura).
  • Dado un producto ya reseñado por mí, cuando intento reseñar de nuevo, entonces el sistema lo impide (una reseña por cliente, producto y tienda).
  • Dada una reseña enviada, cuando se guarda, entonces queda en estado PENDING y no es pública hasta ser aprobada.
  • Dado un rating de 1 a 5 y un comentario, cuando envío, entonces recibo confirmación y el comentario no se publica aún.
  • Dado el aislamiento multi-tenant, cuando reseño, entonces la reseña se asocia a la tienda activa (store_id) y solo esa tienda la ve.
  • Compra verificada: solo puede reseñar quien tiene un pedido DELIVERED con ese producto en esa tienda.
  • Rango: rating entero 1–5, obligatorio. Título y cuerpo opcionales con límite de longitud.
  • Sin imágenes en MVP_2 (alineado con la exclusión de imágenes de producto).
  • La reseña pertenece a reviews y sigue las fronteras de ARCH-04; no escribe en catalog.
  • Publicación automática sin moderación.
  • Reseñas de invitados sin compra.
  • Votos útiles / reacciones (evaluar en fase posterior).
  • Edición de reseña publicada (solo eliminar por moderación).
  • Contexto reviews (hexagonal, ARCH-04). Esquema en DS-04.
  • operationIds propuestos (MVP_2, a registrar en contract/openapi.yaml y DS-02 antes de codificar, ADR-10): createProductReview, listProductReviews.
  • El rating agregado se proyecta hacia la vista de producto de catalog mediante evento de dominio (DS-03), nunca por join cross-módulo.

El flujo completo vive en IX-04 (reseña → moderación → publicación).