from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api import api_router from app.config import get_settings from app.db import SessionLocal, init_db from app.services.user_service import ensure_default_admin def create_app() -> FastAPI: settings = get_settings() app = FastAPI(title=settings.app_name) app.add_middleware( CORSMiddleware, allow_origins=settings.cors_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(api_router) @app.on_event("startup") def startup() -> None: init_db() db = SessionLocal() try: ensure_default_admin(db) db.commit() finally: db.close() @app.get("/health") def health() -> dict: return {"status": "ok", "app": settings.app_name} return app app = create_app()