import sys import time from datetime import datetime, timezone from fastapi import APIRouter, Depends from app.core.config import settings from app.core.dependencies import verify_api_key router = APIRouter() _START_TIME = time.monotonic() @router.get("/config") async def get_app_config(): """Récupère la configuration publique de l'application.""" return { "debug_mode": bool(settings.debug_mode), } @router.get("/config/version") async def get_app_version(api_key_valid: bool = Depends(verify_api_key)): """Retourne la version de l'application, Python, et l'uptime.""" uptime_seconds = int(time.monotonic() - _START_TIME) hours, remainder = divmod(uptime_seconds, 3600) minutes, seconds = divmod(remainder, 60) return { "app_version": settings.api_version, "app_title": settings.api_title, "python_version": sys.version, "python_executable": sys.executable, "timezone": settings.scheduler_timezone, "uptime": f"{hours}h {minutes}m {seconds}s", "uptime_seconds": uptime_seconds, "server_time": datetime.now(timezone.utc).isoformat(), }