from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles from app.api import ( admin, cars, catalog, change_requests, entries, gamification, my, ocr, parser, service_centers, service_visits, sto_booking, users, ) from app.core.config import settings app = FastAPI(title="Drivers Bot API", version="0.1.0") dev_origins = ["http://localhost:8000", "http://127.0.0.1:8000"] if not settings.is_production else [] cors_origins = settings.cors_origin_list or dev_origins app.add_middleware( CORSMiddleware, allow_origins=cors_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(users.router, prefix="/api") app.include_router(my.router, prefix="/api") app.include_router(catalog.router, prefix="/api") app.include_router(cars.router, prefix="/api") app.include_router(entries.router, prefix="/api") app.include_router(gamification.router, prefix="/api") app.include_router(ocr.router, prefix="/api") app.include_router(parser.router, prefix="/api") app.include_router(service_centers.router, prefix="/api") app.include_router(sto_booking.router, prefix="/api") app.include_router(service_visits.router, prefix="/api") app.include_router(change_requests.router, prefix="/api") app.include_router(admin.router, prefix="/api") @app.get("/health") async def health() -> dict[str, str]: return {"status": "ok"} app.mount("/", StaticFiles(directory="web", html=True), name="web")