from fastapi import Depends, Header, HTTPException, status from sqlalchemy.ext.asyncio import AsyncSession from app.config import settings from app.database import async_session_factory async def get_db() -> AsyncSession: """FastAPI dependency that yields an async database session.""" async with async_session_factory() as session: try: yield session await session.commit() except Exception: await session.rollback() raise async def verify_api_key(x_api_key: str = Header(...)) -> str: """Validate the X-API-Key header against the configured admin key.""" if x_api_key != settings.admin_api_key: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid API key", ) return x_api_key