import os
import sys

# 1. Add current application directory to sys.path
project_dir = os.path.dirname(os.path.abspath(__file__))
if project_dir not in sys.path:
    sys.path.insert(0, project_dir)

# 2. Explicitly append Namecheap Virtualenv site-packages path
# Folder structure: /home/vertzbyn/virtualenv/wcpy.ejal.email/3.9/lib/python3.9/site-packages
user_home = os.path.expanduser('~')
venv_site_packages = os.path.join(
    user_home,
    'virtualenv',
    'wcpy.ejal.email',
    '3.9',
    'lib',
    'python3.9',
    'site-packages'
)

if os.path.exists(venv_site_packages) and venv_site_packages not in sys.path:
    sys.path.insert(0, venv_site_packages)

try:
    # Attempt to load Flask application from app.py
    from app import app as application
except Exception as err:
    import traceback
    
    def application(environ, start_response):
        """Diagnostic fallback WSGI handler to print startup errors directly to browser."""
        status = '500 Internal Server Error'
        error_details = traceback.format_exc()
        output = (
            f"PYTHON WSGI STARTUP ERROR:\n"
            f"{'='*60}\n"
            f"Error Type: {type(err).__name__}\n"
            f"Error Message: {str(err)}\n\n"
            f"STACK TRACE:\n"
            f"{error_details}\n"
            f"PYTHON SYS.PATH:\n"
            + "\n".join(sys.path)
        )
        response_headers = [
            ('Content-Type', 'text/plain; charset=utf-8'),
            ('Content-Length', str(len(output)))
        ]
        start_response(status, response_headers)
        return [output.encode('utf-8')]