"""
ASGI config for trancendence project.

It exposes the ASGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
"""

import os
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack

import chat.routing
import matchmaking.routing
import tournament.routing
import games.routing

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'trancendence.settings')

application = ProtocolTypeRouter({
    'http':get_asgi_application(),
	'websocket':AuthMiddlewareStack(
		URLRouter(
			chat.routing.websocket_urlpatterns +
			matchmaking.routing.websocket_urlpatterns +
			tournament.routing.websocket_urlpatterns +
			games.routing.websocket_urlpatterns
		)
	)
})

