from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
import uvicorn
from endpoints import subway_router, minecraft_router, basic_router, video_editor, rumble_router

app = FastAPI()

# Add CORS middleware
app.add_middleware(
	CORSMiddleware,
	allow_origins=["*"],
	allow_methods=["*"],
	allow_headers=["*"]
)

# mount static folder
app.mount("/static", StaticFiles(directory="static"), name="static")

# Define the root route
@app.get("/")
async def root():
	# return the index.html file
	return FileResponse("static/index.html")

# Include routers
app.include_router(subway_router, prefix="/generate-subtitles")
app.include_router(minecraft_router, prefix="/generate-subtitles")
app.include_router(basic_router, prefix="/generate-subtitles")
app.include_router(video_editor, prefix="/video-editor")
app.include_router(rumble_router, prefix="/generate-subtitles")

if __name__ == "__main__":
	uvicorn.run("server:app", host="localhost", port=8000, reload=True)