from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware from app.core.config import settings from app.core.database import init_db from app.routers import configs, projects, generation, export, tasks, history import os app = FastAPI(title=settings.PROJECT_NAME) # CORS app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Mount static files static_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), "static") if not os.path.exists(static_dir): os.makedirs(static_dir) app.mount("/static", StaticFiles(directory=static_dir), name="static") # Include routers app.include_router(configs.router, prefix=f"{settings.API_V1_STR}/configs", tags=["configs"]) app.include_router(projects.router, prefix=f"{settings.API_V1_STR}/projects", tags=["projects"]) app.include_router(generation.router, prefix=f"{settings.API_V1_STR}/generate", tags=["generation"]) app.include_router(export.router, prefix=f"{settings.API_V1_STR}/export", tags=["export"]) app.include_router(tasks.router, prefix=f"{settings.API_V1_STR}/tasks", tags=["tasks"]) app.include_router(history.router, prefix=f"{settings.API_V1_STR}/history", tags=["history"]) @app.on_event("startup") def on_startup(): init_db() @app.get("/") def read_root(): return {"message": "Welcome to AI Comic Generator API"}