import asyncio from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.core.config import CORS_ORIGINS from app.core.discord_bot import start_discord_bot from app.core.scheduler import start_scheduler from app.db.database import init_db from app.api import chat, memory, logs, system @asynccontextmanager async def lifespan(app: FastAPI): init_db() start_scheduler() asyncio.create_task(start_discord_bot()) yield app = FastAPI(title="PlayChat API", version="0.1.0", lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=CORS_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(chat.router) app.include_router(memory.router) app.include_router(logs.router) app.include_router(system.router) @app.get("/health") def health(): return {"status": "ok"}