Skip to content

Agregar el funcionamiento de las notificacion - #117

Merged
CrisNAC merged 1 commit into
devfrom
OM-465
Apr 20, 2026
Merged

CrisNAC merged 1 commit into
devfrom
OM-465

Conversation

@Lianyang1234

@Lianyang1234 Lianyang1234 commented Apr 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

Notas de versión

  • Nuevas Funcionalidades
    • Los administradores ahora pueden rechazar comercios pendientes de aprobación. Al rechazar, se especifica una razón que es enviada automáticamente al propietario del comercio mediante notificación. El estado del comercio se actualiza reflejando el rechazo.

@coderabbitai

coderabbitai Bot commented Apr 20, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@CrisNAC has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 55 minutes and 38 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 55 minutes and 38 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 87337040-a6f7-4807-8495-84b0e4a604b9

📥 Commits

Reviewing files that changed from the base of the PR and between 49ba6f3 and 33c11f4.

📒 Files selected for processing (5)
  • src/modules/admin/stores/admin-stores.controller.js
  • src/modules/admin/stores/admin-stores.routes.js
  • src/modules/admin/stores/admin-stores.service.js
  • src/modules/commerce/commerces/store.service.js
  • tests/unit/report/product-report.test.js
📝 Walkthrough

Walkthrough

Se implementa la funcionalidad para rechazar tiendas en el módulo de administración. Se agregan controlador, ruta y servicio para gestionar rechazos de tiendas pendientes, actualizando su estado a suspendido y notificando al usuario. Se extiende la selección de campos para incluir store_status.

Changes

Cohort / File(s) Resumen
Rechazo de tiendas - Controlador y rutas
src/modules/admin/stores/admin-stores.controller.js, src/modules/admin/stores/admin-stores.routes.js
Se agrega nuevo controlador rejectStore que procesa solicitudes de rechazo (id y reason), incluyendo manejo de errores consistente. Se define nueva ruta PATCH /:id/reject protegida por autenticación y permisos de administrador.
Rechazo de tiendas - Servicio
src/modules/admin/stores/admin-stores.service.js
Se implementa rejectStoreService que valida parámetros, verifica estado de la tienda (debe ser INACTIVE), ejecuta transacción atómica para cambiar estado a SUSPENDED y crear notificación al usuario.
Selección de campos de tienda
src/modules/commerce/commerces/store.service.js
Se extiende STORE_RESPONSE_SELECT y storeSelect para incluir el campo store_status en las respuestas de consultas de tiendas.
Ajuste de test
tests/unit/report/product-report.test.js
Se relaja la aserción de Prisma para usar expect.objectContaining en la cláusula where, permitiendo mayor flexibilidad en la validación.

Sequence Diagram(s)

sequenceDiagram
    participant Cliente
    participant Controlador as Controlador<br/>(rejectStore)
    participant Servicio as Servicio<br/>(rejectStoreService)
    participant BaseDatos as Base de Datos
    participant Notificaciones as Notificaciones

    Cliente->>Controlador: PATCH /:id/reject<br/>{reason}
    Controlador->>Servicio: rejectStoreService(id, reason)
    
    Servicio->>BaseDatos: Buscar tienda (status=true)
    BaseDatos-->>Servicio: Tienda encontrada
    
    alt Tienda no existe
        Servicio-->>Controlador: Error 404
    else Estado no es INACTIVE
        Servicio-->>Controlador: Error 400
    else Validación exitosa
        Servicio->>BaseDatos: Iniciar transacción
        BaseDatos->>BaseDatos: Actualizar store_status<br/>a SUSPENDED
        Servicio->>Notificaciones: Crear notificación<br/>con reason
        BaseDatos-->>Servicio: Transacción completada
        Servicio->>BaseDatos: Consultar tienda actualizada
        BaseDatos-->>Servicio: Tienda con nuevo status
        Servicio-->>Controlador: Tienda rechazada
    end
    
    Controlador-->>Cliente: 200 {success, data}
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutos

Possibly related PRs

  • aprobar comercio #104: Implementa flujo complementario de aprobación de tiendas (approveStore) con estructura similar de controlador, servicio y rutas.
  • Om 405 #80: Modifica la lógica de getStoreById en el servicio de comercio para incluir y gestionar el campo store_status.
  • Om 301 #53: Introduce las adiciones de esquema y enumeraciones (StoreStatus y Stores.store_status) que este PR utiliza en la lógica de validación y actualización.

Suggested reviewers

  • SebaKisser

Poem

🐰 Un comercio rechazado con razón clara,
Notificaciones vuelan, la tienda se prepara,
Status suspendido, estado cambiado,
Con transacciones seguras, todo bien resguardado! 📋✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive El título es vago e incompleto: usa términos genéricos ('el funcionamiento', 'notificacion') sin especificar qué cambios se implementan. No describe claramente el propósito principal del PR (rechazar tiendas, crear notificaciones). Mejorar el título para ser más específico y descriptivo, por ejemplo: 'Agregar funcionalidad para rechazar tiendas con notificaciones' o 'Implementar rechazo de tiendas pendientes con notificaciones al usuario'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch OM-465

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.

@CrisNAC

CrisNAC commented Apr 20, 2026

Copy link
Copy Markdown
Owner

@CodeRabbit review

@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@CrisNAC

CrisNAC commented Apr 20, 2026

Copy link
Copy Markdown
Owner

@CodeRabbit full review

@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Full review triggered.

@CrisNAC
CrisNAC merged commit 3f69487 into dev Apr 20, 2026
2 checks passed
@Andoumeda
Andoumeda deleted the OM-465 branch April 23, 2026 17:05
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