# Pasarela de propuesta de local ## ADDED Requirements ### Requirement: Pasarela paso a paso en un modal El sistema SHALL presentar la propuesta de un local como una pasarela (wizard) dentro de un modal, con un solo campo por pantalla, navegación atrás/siguiente e indicador de progreso. #### Scenario: Una pantalla por campo - **WHEN** la pasarela está abierta - **THEN** cada pantalla muestra únicamente el campo correspondiente al paso actual, con botones para avanzar y retroceder #### Scenario: Navegación hacia atrás - **WHEN** el usuario pulsa "Atrás" en una pantalla intermedia - **THEN** vuelve a la pantalla anterior conservando los datos ya introducidos #### Scenario: Avance bloqueado sin dato válido - **WHEN** el campo de la pantalla actual está vacío o es inválido - **THEN** el botón "Siguiente" está deshabilitado y la pantalla no avanza #### Scenario: Cierre del modal - **WHEN** el usuario cierra el modal (botón ✕, botón Cancelar o tecla Escape) - **THEN** la pasarela se cierra y se descarta el borrador en curso ### Requirement: Orden de las pantallas empezando por Ubicación La pasarela SHALL presentar las pantallas en este orden: 1) Ubicación, 2) Nombre, 3) Provincia, 4) Categoría, 5) Tipo específico (opcional), 6) Revisión y envío. #### Scenario: Primera pantalla - **WHEN** se abre la pasarela - **THEN** la primera pantalla que se muestra es la de Ubicación #### Scenario: Tipo específico omitible - **WHEN** el usuario está en la pantalla de Tipo específico - **THEN** puede continuar sin seleccionar ninguna subcategoría ### Requirement: Inferencia de Nombre y Provincia desde la Ubicación El sistema SHALL pre-rellenar los campos Nombre y Provincia a partir de la ubicación introducida en la primera pantalla (geocodificación inversa), permitiendo al usuario corregirlos. #### Scenario: Nombre y provincia pre-rellenados - **WHEN** el usuario introduce una ubicación válida en la primera pantalla y esta se resuelve con éxito - **THEN** al llegar a las pantallas de Nombre y Provincia ambos campos aparecen pre-rellenados con los valores inferidos #### Scenario: Valores corregibles - **WHEN** los valores inferidos no son correctos - **THEN** el usuario puede editarlos libremente antes de enviar #### Scenario: Degradación sin inferencia - **WHEN** la inferencia falla o devuelve campos vacíos - **THEN** las pantallas de Nombre y Provincia aparecen vacías y el usuario los rellena manualmente, sin bloquear la pasarela ### Requirement: Sin campo de comentario ni puntuación La pasarela SHALL NOT incluir el campo de comentario/descripción ni el campo de puntuación; la propuesta se envía sin esos datos. #### Scenario: Envío sin comentario ni puntuación - **WHEN** el usuario completa la pasarela y envía - **THEN** la propuesta se registra con nombre, provincia, categoría, subcategoría, dirección/enlace y coordenadas, sin descripción y sin puntuación ### Requirement: Revisión y aceptación de privacidad antes de enviar La última pantalla de la pasarela SHALL mostrar un resumen de los datos introducidos y el checkbox de aceptación de la política de privacidad, siendo este último obligatorio para enviar. #### Scenario: Envío bloqueado sin aceptar privacidad - **WHEN** el usuario llega a la pantalla final sin marcar la casilla de privacidad - **THEN** el botón de envío está deshabilitado hasta que la marque #### Scenario: Resumen antes de enviar - **WHEN** el usuario llega a la pantalla final - **THEN** ve un resumen legible de todos los datos introducidos con posibilidad de volver atrás a corregirlos ### Requirement: Validaciones existentes integradas en la pasarela La pasarela SHALL conservar las validaciones actuales del formulario: filtro de palabras prohibidas y comprobación de duplicados, mostrando los avisos dentro del modal. #### Scenario: Palabra prohibida detectada - **WHEN** el texto introducido contiene una palabra no permitida - **THEN** se muestra un aviso dentro del modal y la propuesta no se envía #### Scenario: Posible duplicado detectado - **WHEN** al enviar se detecta un local igual o muy cercano - **THEN** se muestra el aviso de duplicado dentro del modal con las coincidencias y las opciones de enviar de todos modos o revisar los datos #### Scenario: Envío correcto - **WHEN** la propuesta se envía con éxito - **THEN** el modal se cierra y aparece la confirmación de propuesta enviada en la página principal ### Requirement: Modal responsive accesible El modal de la pasarela SHALL ser usable en PC (diálogo centrado) y móvil (ocupando prácticamente toda la pantalla), con foco contenido y cierre mediante Escape. #### Scenario: Uso en móvil - **WHEN** la pasarela se abre en una pantalla estrecha - **THEN** el modal ocupa el ancho completo y es operativo con teclado y scroll táctil #### Scenario: Foco contenido en el modal - **WHEN** el modal está abierto - **THEN** el foco de teclado permanece dentro del modal y la tecla Escape lo cierra