"""ASGI entrypoint - serves both HTTP (Django) and WebSockets (Channels).

`py manage.py runserver` picks this up automatically because 'daphne' is the
first entry in INSTALLED_APPS, so the dev workflow does not change.
"""
import os

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yatra_testing.settings')
django_asgi_app = get_asgi_application()  # must run before importing consumers

from channels.routing import ProtocolTypeRouter, URLRouter  # noqa: E402

from api.ws_auth import JWTAuthMiddleware  # noqa: E402
from yatra_testing.routing import websocket_urlpatterns  # noqa: E402

application = ProtocolTypeRouter({
    'http': django_asgi_app,
    'websocket': JWTAuthMiddleware(URLRouter(websocket_urlpatterns)),
})
