from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .core.config import settings from .database import Base, engine from .routes import auth, apikey, chat, about def run_migrations(): try: from alembic import command from alembic.config import Config import os cfg = Config(os.path.join(os.path.dirname(__file__), "migrations", "alembic.ini")) cfg.set_main_option("script_location", os.path.join(os.path.dirname(__file__), "migrations")) cfg.set_main_option("sqlalchemy.url", settings.DATABASE_URL) command.upgrade(cfg, "head") except Exception as e: print("Alembic migration error:", e) def create_app() -> FastAPI: app = FastAPI(title=settings.APP_NAME) app.add_middleware( CORSMiddleware, allow_origins=[settings.CORS_ORIGINS] if settings.CORS_ORIGINS != "*" else ["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) Base.metadata.bind = engine app.include_router(auth.router) app.include_router(apikey.router) app.include_router(chat.router) app.include_router(about.router) return app