import multiprocessing
import os

# Load .env so FASTAPI_BIND is available at gunicorn config time
try:
    from dotenv import load_dotenv
    load_dotenv(os.path.join(os.path.dirname(__file__), '.env'))
except ImportError:
    pass

bind = os.getenv("FASTAPI_BIND", "0.0.0.0:8001")
default_workers = min(4, max(2, multiprocessing.cpu_count() // 2))
workers = int(os.getenv("FASTAPI_WORKERS", str(default_workers)))
worker_class = "uvicorn.workers.UvicornWorker"
timeout = int(os.getenv("FASTAPI_TIMEOUT", "120"))
graceful_timeout = int(os.getenv("FASTAPI_GRACEFUL_TIMEOUT", "30"))
keepalive = int(os.getenv("FASTAPI_KEEPALIVE", "5"))
max_requests = int(os.getenv("FASTAPI_MAX_REQUESTS", "2000"))
max_requests_jitter = int(os.getenv("FASTAPI_MAX_REQUESTS_JITTER", "200"))
accesslog = "-"
errorlog = "-"
loglevel = os.getenv("LOG_LEVEL", "info").lower()
