"""JA4 SOC Dashboard — FastAPI application."""

from __future__ import annotations

import logging

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles

from backend.routes.api import router as api_router
from backend.routes.pages import router as pages_router

logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s")

app = FastAPI(title="JA4 SOC Dashboard", version="1.0.0")

# CORS — allow all origins for dashboard access
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# Static assets
app.mount("/static", StaticFiles(directory="backend/static"), name="static")

# Routers — API first so /api/* paths match before page catch-all
app.include_router(api_router)
app.include_router(pages_router)


@app.get("/health")
async def health():
    return {"status": "ok"}
