import { fetchGraphQL, isWpConfigured } from "../client";
import type { WpChatbotSettings } from "../types";

const CHATBOT_SETTINGS_QUERY = /* GraphQL */ `
  query GetCovalbaChatbotSettings {
    covalbaChatbotSettings {
      enabled
      widgetUrl
    }
  }
`;

let didWarnUnavailable = false;

export async function getChatbotSettings(): Promise<WpChatbotSettings | null> {
  if (!isWpConfigured()) return null;

  try {
    const data = await fetchGraphQL<{
      covalbaChatbotSettings: WpChatbotSettings | null;
    }>(CHATBOT_SETTINGS_QUERY, undefined, { tags: ["chatbot-settings"] });

    return data.covalbaChatbotSettings ?? null;
  } catch (error) {
    const message = error instanceof Error ? error.message : String(error);
    if (message.includes('Cannot query field "covalbaChatbotSettings"')) {
      return null;
    }

    if (!didWarnUnavailable) {
      didWarnUnavailable = true;
      console.warn("[wp] chatbot settings unavailable", error);
    }
    return null;
  }
}
