from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

from src.config.settings import settings
from src.routes.api import v1_router as api_routes


app = FastAPI(
    title=settings.PROJECT_NAME,
    version="1.0.0",
    openapi_url=f"{settings.API_V1_STR}/openapi.json",
    docs_url="/docs",
    redoc_url="/redoc"
)


app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

app.include_router(api_routes, prefix=settings.API_V1_STR)


@app.get("/", tags=["Root"])
def read_root():
    return {"message": "Welcome to FastAPI"}

def main():
    print("🚀 Starting Karigor App via Uvicorn...")
    uvicorn.run(app, host="127.0.0.1", port=8000)

if __name__ == '__main__':
    main()