from fastapi import Depends, Header, HTTPException, Request, status from sqlalchemy.ext.asyncio import AsyncSession from app.core.config import Settings, get_settings from app.core.database import get_session async def get_db(session: AsyncSession = Depends(get_session)) -> AsyncSession: return session def get_app_settings() -> Settings: return get_settings() async def require_admin( request: Request, authorization: str | None = Header(default=None), settings: Settings = Depends(get_app_settings), ) -> None: token = None if authorization and authorization.lower().startswith("bearer "): token = authorization.split(" ", 1)[1] if token != settings.admin_token: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid admin token")