// @/redux/thunks/getDigitalInputsThunk.ts
import { createAsyncThunk } from "@reduxjs/toolkit";
import { fetchDigitalInputsService } from "@/services/fetchDigitalInputsService";
import { setInputs } from "@/redux/slices/digitalInputsSlice";

/**
 * Holt digitale Eingänge von der API und speichert sie in Redux.
 */
export const getDigitalInputsThunk = createAsyncThunk(
  "digitalInputs/fetchDigitalInputs",
  async (_, { dispatch }) => {
    if (typeof window === "undefined") return;

    try {
      const data = await fetchDigitalInputsService();
      if (data) {
        // Map data to ensure all DigitalInput properties are present
        const mappedData = data.map((item: any) => ({
          ...item,
          flutter: item.flutter ?? false,
          zaehlerAktiv: item.zaehlerAktiv ?? false,
        }));
        dispatch(setInputs(mappedData)); // ✅ Redux mit API-Daten füllen
      }
    } catch (error) {
      console.error("❌ Fehler beim Laden der digitalen Eingänge:", error);
    }
  }
);
