"""
Ruteo de prueba para las vistas que todavía no están cableadas.

Las rutas definitivas las cablea `config/urls.py`, que no es de este módulo.
Hasta que estén, este urlconf las monta con los nombres acordados para poder
ejercitar las vistas de verdad y no sólo los servicios: sin esto, el eslabón
entre el botón «Cerrar» y el servicio —o entre la lista de lotes y su ficha—
quedaría sin ninguna prueba.

Cuando `config/urls.py` las tenga, este módulo y los `override_settings` que lo
usan se borran y las pruebas siguen igual.
"""

from django.urls import include, path

from apps.accounts import views as account_views
from apps.jobs import views as job_views
from apps.onboarding import views as onboarding_views

urlpatterns = [
    path('sessions', account_views.index, name='sessions'),
    path('sessions/close-others', account_views.close_others, name='sessions.close_others'),
    path('sessions/<uuid:session_id>/close', account_views.close, name='session.close'),
    path('api-keys', account_views.api_keys, name='api_keys'),
    path('api-keys/new', account_views.api_key_create, name='api_key.create'),
    path('api-keys/<uuid:key_id>/revoke', account_views.api_key_revoke, name='api_key.revoke'),
    # Estas cuelgan de `search-console/` porque son de esa herramienta, igual
    # que en `config/urls.py`. El prefijo tiene que coincidir: estas rutas se
    # declaran antes que el `include` de abajo y por lo tanto **ganan** al
    # resolver un nombre, así que si acá dijeran otra dirección, `reverse()`
    # devolvería una en los tests y otra en producción.
    #
    # Los lotes cuelgan del dominio porque se miran por dominio; la ficha vive
    # en la raíz de la herramienta porque el identificador ya la ubica sola y
    # así el enlace que llega por correo o desde la API no necesita repetir el
    # dominio.
    path('search-console/domains/<uuid:domain_id>/batches', job_views.index, name='batches'),
    path('search-console/batches/<uuid:batch_id>', job_views.show, name='batch.show'),
    path('search-console/onboarding', onboarding_views.wizard, name='onboarding'),
    # El código del paso va como texto: son los siete de `content.STEP_CODES`, y
    # el que no esté en esa lista lo rechaza la vista con un 404.
    path(
        'search-console/onboarding/steps/<str:step>/verify',
        onboarding_views.verify,
        name='onboarding.verify',
    ),
    path('search-console/onboarding/dismiss', onboarding_views.dismiss, name='onboarding.dismiss'),
    path('', include('config.urls')),
]
