from fastapi import FastAPI from fastapi.security import OAuth2PasswordBearer from contextlib import asynccontextmanager from dotenv import load_dotenv from .controllers import userManager, cardManager, groupManager, aaManager, doorManager from .services.database import create_db_and_tables from .services.auth import token_router, create_first_user oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") @asynccontextmanager async def lifespan(app: FastAPI): load_dotenv() create_db_and_tables() create_first_user() print("Database created and tables initialized.") yield app = FastAPI(lifespan=lifespan) app.include_router(token_router) app.include_router(userManager.user_router) app.include_router(groupManager.group_router) app.include_router(cardManager.card_router) app.include_router(aaManager.aa_router) app.include_router(doorManager.door_router)