from fastapi import Depends, FastAPI, Header, HTTPException

from api.routes.detect import router as detect_router
from api.routes.face import router as face_router
from api.routes.gps import router as gps_router
from api.routes.health import router as health_router
from api.routes.predict import router as predict_router
from core.config import settings

app = FastAPI(title=settings.app_name, version=settings.app_version)


def auth_guard(x_ai_token: str | None = Header(default=None)) -> None:
    if x_ai_token != settings.auth_token:
        raise HTTPException(status_code=401, detail="Unauthorized")


app.include_router(health_router)
app.include_router(gps_router, dependencies=[Depends(auth_guard)])
app.include_router(face_router, dependencies=[Depends(auth_guard)])
app.include_router(detect_router, dependencies=[Depends(auth_guard)])
app.include_router(predict_router, dependencies=[Depends(auth_guard)])
