from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from core.database import init_db from api import auth, sources, podcast, flashcards, mindmaps, quizzes, reports, video_generator, rag, chat, websocket_routes, canvas # Initialize Database Tables init_db() app = FastAPI( title="CreatorStudio AI API", description="Backend for CreatorStudio AI - Podcast and Content Creation Platform", version="0.1.0" ) # CORS Configuration app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include Routers app.include_router(auth.router) app.include_router(sources.router) app.include_router(podcast.router) app.include_router(flashcards.router) app.include_router(mindmaps.router) app.include_router(quizzes.router) app.include_router(reports.router) app.include_router(video_generator.router) app.include_router(rag.router) app.include_router(chat.router) app.include_router(canvas.router) app.include_router(websocket_routes.router) # WebSocket endpoints for real-time progress @app.get("/") async def root(): return {"message": "Welcome to CreatorStudio AI API. Head to /docs for API documentation."} if __name__ == "__main__": import uvicorn uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)