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, get_session from .services.auth import token_router, create_first_user from app.services.scanner import BackgroundScanner oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") scanner = BackgroundScanner(db=get_session()) @asynccontextmanager async def lifespan(app: FastAPI): load_dotenv() create_db_and_tables() create_first_user() print("Database created and tables initialized.") scanner.start() yield #scanner.stop() 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)