import { logApiError } from "@/lib/api/security";
import { NextResponse } from "next/server";
import { getAISettingsPublic } from "@/lib/ai/settings";
import { createRouteClient } from "@/lib/supabase/route";

function getCoreBaseUrl() {
  return process.env.MINDBOARD_CORE_URL || null;
}

export async function GET() {
  try {
    const supabase = await createRouteClient();
    const {
      data: { user },
    } = await supabase.auth.getUser();

    if (!user) {
      return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
    }

    const settings = await getAISettingsPublic(user.id);
    let coreOnline = false;

    const coreBaseUrl = getCoreBaseUrl();

    if (coreBaseUrl) {
      try {
        const res = await fetch(`${coreBaseUrl}/api/tags`, {
          method: "GET",
        });
        coreOnline = res.ok;
      } catch {
        coreOnline = false;
      }
    }

    return NextResponse.json({
      coreOnline,
      coreUrl: coreBaseUrl,
      provider: settings.provider,
      model: settings.model,
      openaiConnected: settings.openaiConnected,
      anthropicConnected: settings.anthropicConnected,
    });
  } catch (error) {
    logApiError("AI status GET error:", error);
    return NextResponse.json({ error: "Failed to load AI status" }, { status: 500 });
  }
}
