import os
import sys

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
if BASE_DIR not in sys.path:
    sys.path.insert(0, BASE_DIR)

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

from gtrans_project.wsgi import application as _django_application

# Quand l'application est montée sous un préfixe d'URL (api.karisconseil.com
# /gtrans), Passenger transmet le chemin COMPLET à Django : il envoie
# PATH_INFO=/gtrans/api/... alors que les routes du projet commencent à /api/.
# Résultat : Django répond 404 sur toutes les URLs alors qu'il tourne
# parfaitement — le symptôme classique d'une app "montée mais introuvable".
#
# On déplace donc le préfixe de PATH_INFO vers SCRIPT_NAME, ce que la norme
# WSGI prévoit exactement pour ce cas : Django voit /api/... et sait que le
# site est enraciné sur /gtrans (pour reverse(), les redirections, etc.).
_PREFIX = os.environ.get('PUBLIC_PATH', '').rstrip('/')


def application(environ, start_response):
    if _PREFIX:
        path = environ.get('PATH_INFO', '')
        if path == _PREFIX or path.startswith(_PREFIX + '/'):
            environ['SCRIPT_NAME'] = environ.get('SCRIPT_NAME', '') + _PREFIX
            environ['PATH_INFO'] = path[len(_PREFIX):] or '/'
    return _django_application(environ, start_response)
