"""
Atomizer Dashboard - FastAPI Backend
Real-time optimization monitoring and control
"""

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import FileResponse
from pathlib import Path
import sys

# Add parent directory to path to import optimization_engine
sys.path.append(str(Path(__file__).parent.parent.parent.parent))

from api.routes import optimization, claude, terminal, insights, context
from api.websocket import optimization_stream

# Create FastAPI app
app = FastAPI(
    title="Atomizer Dashboard API",
    description="Real-time optimization monitoring and control",
    version="1.0.0"
)

# Configure CORS for local development
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # Allow all origins for local development
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# Include routers
app.include_router(optimization.router, prefix="/api/optimization", tags=["optimization"])
app.include_router(optimization_stream.router, prefix="/api/ws", tags=["websocket"])
app.include_router(claude.router, prefix="/api/claude", tags=["claude"])
app.include_router(terminal.router, prefix="/api/terminal", tags=["terminal"])
app.include_router(insights.router, prefix="/api/insights", tags=["insights"])
app.include_router(context.router, prefix="/api/context", tags=["context"])

@app.get("/")
async def root():
    """Serve the enhanced dashboard HTML"""
    dashboard_path = Path(__file__).parent.parent.parent / "dashboard-enhanced.html"
    return FileResponse(dashboard_path)

@app.get("/health")
async def health_check():
    """Health check endpoint"""
    return {"status": "healthy"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(
        "main:app",
        host="0.0.0.0",
        port=8000,
        reload=True,
        log_level="info"
    )
