Home Projects Portfolio Dashboard Export PDF Log in
PHP Google Cloud

Alineando la disponibilidad de mentorías: Corrigiendo los reportes en Discord

En el proyecto devlog-ist/landing, nos enfocamos constantemente en asegurar que nuestra comunicación automatizada refleje con precisión el estado real de nuestras mentorías. Recientemente, detectamos un comportamiento inesperado en nuestra herramienta de notificaciones semanal de Discord, la cual utiliza Google Cloud para gestionar la ejecución de tareas programadas.

El problema

El sistema de resúmenes enviaba notificaciones sobre mentorías que, aunque estaban marcadas como activas y públicas, ya no deberían estar disponibles. Específicamente, el servicio incluía mentorías que habían sido suspendidas, ignorando el campo suspended_at. Esto generaba confusión en la comunidad al promocionar mentorías que ya no aceptaban nuevos alumnos.

La solución

Para solucionar esto, hemos estandarizado la lógica de consulta para alinearnos con la definición de "disponibilidad" que ya se utiliza en otras partes críticas del sistema, como el directorio público y los recordatorios de reservas. La solución consistió en aplicar un filtro whereNull sobre el campo de suspensión en nuestra consulta principal:

public function getAvailableMentorships()
{
    return Mentorship::query()
        ->where('is_active', true)
        ->where('is_public', true)
        ->whereNull('suspended_at') // Filtro aplicado
        ->get();
}

Esta modificación asegura que el comando de consola que dispara las notificaciones a Discord sea consistente con nuestra lógica de negocio principal, utilizando la misma capa de servicio para validar el estado de cada mentoría.

Consideraciones finales

Además de la corrección del código, reforzamos nuestra suite de pruebas para incluir un caso específico que valida la exclusión de servicios suspendidos. Mantener la consistencia en los criterios de filtrado es fundamental para evitar fugas de información obsoleta y mejorar la experiencia de nuestros usuarios en Discord.

Alineando la disponibilidad de mentorías: Corrigiendo los reportes en Discord
Gerardo Ruiz

Gerardo Ruiz

Author

Share: