Skip to content

feat: agregar image_url en respuestas de productos (store y búsqueda) - #99

Merged
CrisNAC merged 1 commit into
devfrom
PruebaBenja
Apr 15, 2026
Merged

CrisNAC merged 1 commit into
devfrom
PruebaBenja

Conversation

@Benjakr04

@Benjakr04 Benjakr04 commented Apr 15, 2026 •

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

New Features

  • URLs de imagen en respuestas de productos: Ahora se incluyen las URLs de imagen en las respuestas de productos al obtener detalles de productos individuales, visualizar información de tiendas y realizar búsquedas de productos en el catálogo. Este cambio mejora la experiencia del usuario proporcionando información visual asociada a cada producto en múltiples flujos de la aplicación.

@coderabbitai

coderabbitai Bot commented Apr 15, 2026 •

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Recorrido

Se agregó image_url: true a las proyecciones de Prisma en los servicios de productos para tiendas y productos, extendiendo los datos devueltos en las respuestas de API para incluir la URL de imagen. Se actualizó el mapeo de respuestas para normalizar valores faltantes de image_url a null.

Cambios

Cohort / File(s) Resumen
Servicios de Productos y Tiendas
src/modules/commerce/products/product.service.js, src/modules/commerce/commerces/store.service.js
Se agregó image_url: true a las selecciones de Prisma en PRODUCT_RESPONSE_SELECT, getProductsSearchService y STORE_RESPONSE_SELECT. Se actualizó mapProductResponse para incluir imageUrl: product.image_url ?? null en las respuestas mapeadas.

Estimación de esfuerzo en revisión del código

🎯 1 (Trivial) | ⏱️ ~5 minutos

PRs posiblemente relacionados

  • OM-89 #34: Modifica PRODUCT_RESPONSE_SELECT y mapProductResponse agregando campos adicionales; esta PR agrega image_url en las mismas rutas de código.
  • OM-275: agregué el endpoint GET product by id #25: Toca product.service.js y afecta la selección y mapeo de respuestas de productos; esta PR extiende los datos devueltos por getProductByIdService.

Revisores sugeridos

  • CrisNAC
  • Andoumeda

Poema

🐰 Con saltos de alegría, el conejo da su aporte,
image_url añadido con cuidado y reporte,
Imágenes brillantes en cada respuesta,
Los datos ahora cuentan la historia completa,
¡Los productos lucen mejor en cada escena! 📸✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed El título describe claramente el cambio principal: agregar el campo image_url en las respuestas de productos en dos contextos (store y búsqueda).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch PruebaBenja

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/modules/commerce/commerces/store.service.js`:
- Line 949: El fallback legacyStoreSelect no incluye el campo image_url que se
añadió al select principal, causando respuesta inconsistente; en la función
legacyStoreSelect y/o en el mapper usado por store.controller (consultar
legacyStoreSelect y el mapper que transforma la fila a JSON) añade/normaliza
image_url (ej: siempre asignar image_url = row.image_url || null o derivarlo
desde image_path) para garantizar que ambos paths devuelvan la misma estructura
JSON; actualiza el mapper central para cubrir ambos selects y evitar lógica
duplicada entre legacyStoreSelect y el select principal.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b4ba4afe-0f96-44dc-a969-7bb54e687e2f

📥 Commits

Reviewing files that changed from the base of the PR and between 66b9144 and d06d18f.

📒 Files selected for processing (2)
  • src/modules/commerce/commerces/store.service.js
  • src/modules/commerce/products/product.service.js

quantity: true,
visible: true,
is_offer: true,
image_url: true,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Mantener contrato estable también en el fallback legado.

En Line 949 se agrega image_url en la ruta principal, pero en legacyStoreSelect (Lines 983-1014) ese campo no está. Si se activa ese fallback, el campo puede desaparecer del JSON que el controller devuelve directo (src/modules/commerce/commerces/store.controller.js, Lines 66-72), generando respuesta inconsistente.

💡 Propuesta simple: normalizar `image_url` en el mapper para ambos paths
 const mapStoreProductPricing = (product) => {
   const pricing = getProductPricing(product);

   return {
     ...product,
+    image_url: product?.image_url ?? null,
     price: pricing.price,
     original_price: pricing.originalPrice,
     offer_price: pricing.offerPrice,
     is_offer: pricing.isOffer
   };
 };
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/modules/commerce/commerces/store.service.js` at line 949, El fallback
legacyStoreSelect no incluye el campo image_url que se añadió al select
principal, causando respuesta inconsistente; en la función legacyStoreSelect y/o
en el mapper usado por store.controller (consultar legacyStoreSelect y el mapper
que transforma la fila a JSON) añade/normaliza image_url (ej: siempre asignar
image_url = row.image_url || null o derivarlo desde image_path) para garantizar
que ambos paths devuelvan la misma estructura JSON; actualiza el mapper central
para cubrir ambos selects y evitar lógica duplicada entre legacyStoreSelect y el
select principal.

@CrisNAC
CrisNAC merged commit f788755 into dev Apr 15, 2026
2 checks passed
@CrisNAC
CrisNAC deleted the PruebaBenja branch April 15, 2026 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants