🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónPropiedades que cambian de dueño o de estado
5 tareas · 40 min · Principiante
Algunas propiedades no son solo sensibles: cambiarlas es una operación del negocio con sus propias reglas. El dueño de un objeto y su estado son los dos ejemplos más comunes. El programa de puntos de Pulsoandino repartió más de lo que marcaron los torniquetes y recepción no reconoce un traspaso. Te entregan el flujo de una reserva, el controlador de edición, sus reglas y una semana de auditoría.
Objetivo de la sala
Algunas propiedades no son solo sensibles: cambiarlas es una operación del negocio con sus propias reglas. El dueño de un objeto y su estado son los dos ejemplos más comunes. El programa de puntos de Pulsoandino repartió más de lo que marcaron los torniquetes y recepción no reconoce un traspaso. Te entregan el flujo de una reserva, el controlador de edición, sus reglas y una semana de auditoría.El estado de una reserva no es un dato que se escribe: es el resultado de algo que pasó. Pasa a confirmada porque la pasarela confirmó un pago; pasa a asistida porque un torniquete leyó un carné. Cada transición tiene su disparador, su comprobación y sus efectos (devolver una clase, sumar puntos). Lo mismo vale para el dueño: traspasar una reserva exige verificar a las dos personas.
Cuando esas propiedades entran en una edición genérica, la transición se salta su regla. Por eso se sacan de la edición y cada cambio tiene su propia operación, que comprueba que el estado de partida admite el cambio y que quien lo pide tiene derecho a hacerlo. Es la autorización a nivel de propiedad: el mismo campo puede ser legítimo para recepción y prohibido para el socio.
Responde para continuar
¿Por qué el estado de una reserva no debería ser un campo de la edición genérica?
Ver pista de ayuda
Relee el flujo: cada flecha tiene un responsable.
Abre el laboratorio, entra en la carpeta pulsoandino-reservas y lee ReservaController.php. El controlador busca la reserva entre las del propio socio, así que una ajena da 404: la comprobación del objeto está bien. El problema está en ActualizarReservaRequest.php, que admite como editables el dueño y el estado, y en que validated() devuelve justo esos campos. Ahora compara flujo-reservas.txt con auditoria-reservas.txt: cada transición tiene un origen esperado.
Responde para continuar
¿Qué reserva quedó confirmada sin pago ni clase descontada del paquete? Escribe su código.
Ver pista de ayuda
Busca una transición de pendiente a confirmada cuyo origen no es ni la pasarela ni el paquete.
El comentario de la regla dice que el dueño es editable «porque lo necesita recepción», pero recepción tiene su propia ruta. Busca un cambio de dueño que no venga de esa ruta.
Responde para continuar
¿A qué socio pasó una reserva sin que interviniera recepción? Escribe el código del socio que quedó como dueño.
Ver pista de ayuda
Compara el origen de los dos cambios de socio_id del registro.
Según el flujo, solo el torniquete marca una asistencia, y cada asistencia suma 10 puntos. Cruza puntos.txt con la auditoría y mide cuántos puntos se otorgaron por asistencias que no marcó un torniquete.
Responde para continuar
¿Cuántos puntos del programa se otorgaron por asistencias marcadas desde la edición del socio?
Ver pista de ayuda
Para cada reserva con puntos, mira quién la pasó a asistida.
El arreglo tiene que conservar lo que funciona (la búsqueda de la reserva entre las del socio) y quitar del camino genérico lo que es una operación del negocio.
Responde para continuar
¿Qué cambio corrige la edición de reservas de Pulsoandino?
Ver pista de ayuda
Registrar no impide, y la búsqueda ya estaba bien.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.