from __future__ import annotations from pathlib import Path from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles from app.api.routes import router from app.core.config import settings from app.core.logging import setup_logging setup_logging() app = FastAPI(title=settings.app_name, version=settings.app_version) STATIC_DIR = Path(__file__).resolve().parent / "static" cors_origins = [origin.strip() for origin in settings.cors_origins.split(",") if origin.strip()] app.add_middleware( CORSMiddleware, allow_origins=cors_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(router) app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static") @app.get("/") async def index() -> FileResponse: return FileResponse(STATIC_DIR / "index.html")