// /utils/goLoop.ts
export const goLoop = async (
  slotIndex: number,
  setLoading: (loading: boolean) => void
) => {
  if (slotIndex >= 32) return;

  setLoading(true);

  const isMock = process.env.NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START === "true";

  if (isMock) {
    // 🔁 MOCK-MODUS
    try {
      const response = await fetch(
        `/api/cpl/loopMessungStartenMockHandler?slot=${slotIndex + 1}`
      );
      const data = await response.json();

      alert(`(MOCK) ${data.message}`);
      console.log("(MOCK)", data.message);
    } catch (error) {
      console.error("(MOCK) Fehler:", error);
    } finally {
      setLoading(false);
    }
    return;
  }

  // 🚀 ECHTER Backend-Request
  try {
    const slotFormat = slotIndex < 10 ? `${slotIndex}` : `${slotIndex}`;
    const response = await fetch(
      `/CPL?kabelueberwachung.html&KS_${slotFormat}=1&slot=${slotIndex}`,
      {
        method: "GET",
      }
    );

    if (response.ok) {
      alert(
        `Schleifenmessung erfolgreich gestartet für Steckplatz ${slotIndex + 1}`
      );
      console.log("Schleifenmessung gestartet für Steckplatz", slotIndex);
    } else {
      alert("Fehler beim Starten der Schleifenmessung.");
      console.error("Fehler beim Senden der Schleifen-Anfrage");
    }
  } catch (error) {
    alert("Ein Fehler ist aufgetreten.");
    console.error("Fehler:", error);
  } finally {
    setLoading(false);
  }
};
