from contextlib import asynccontextmanager

from fastapi import FastAPI

from app.config import get_settings
from app.database import init_db
from app.routers.admin import router as admin_router
from app.routers.user_panel import router as user_router


@asynccontextmanager
async def lifespan(app: FastAPI):
    init_db()
    yield


settings = get_settings()
app = FastAPI(title="Admin & User API", lifespan=lifespan)

app.include_router(admin_router, prefix=settings.http_api_prefix)
app.include_router(user_router, prefix=settings.http_api_prefix)


@app.get(settings.health_url_path)
def health():
    return {"status": "ok"}
