// __mocks__/webservice/userRights.js
/**
 * Mock-Daten für Benutzerrechte und Systemsichtbarkeit.
 */
export const mockUserRights = {
  Name: "Liste aller angezeigten Systeme",
  Zeitstempel: "2025-05-29T08:57:47.6981898+02:00",
  IdMap: "12",
  Systems: [
    {
      IdSystem: 1,
      Name: "TALAS",
      Longname: "Talas Meldestationen",
      Allow: 1,
      Icon: 1,
    },
    {
      IdSystem: 2,
      Name: "ECI",
      Longname: "ECI GerÃ¤te",
      Allow: 1,
      Icon: 2,
    },
    {
      IdSystem: 3,
      Name: "ULAF",
      Longname: "ULAF GerÃ¤te",
      Allow: 0,
      Icon: 3,
    },
    {
      IdSystem: 5,
      Name: "GSM Modem",
      Longname: "LR77 GSM Modems",
      Allow: 1,
      Icon: 5,
    },
    {
      IdSystem: 6,
      Name: "Cisco Router",
      Longname: "Cisco Router",
      Allow: 1,
      Icon: 6,
    },
    {
      IdSystem: 7,
      Name: "WAGO",
      Longname: "WAGO I/O Systeme",
      Allow: 1,
      Icon: 7,
    },
    {
      IdSystem: 8,
      Name: "Siemens",
      Longname: "Siemens Notrufsysteme",
      Allow: 1,
      Icon: 8,
    },
    {
      IdSystem: 9,
      Name: "OTDR",
      Longname: "GlasfaserÃ¼berwachung OTU",
      Allow: 1,
      Icon: 9,
    },
    {
      IdSystem: 10,
      Name: "WDM",
      Longname: " Wavelength Division Multiplexing",
      Allow: 1,
      Icon: 10,
    },
    {
      IdSystem: 11,
      Name: "GMA",
      Longname: "GlÃ¤ttemeldeanlagen",
      Allow: 1,
      Icon: 11,
    },
    {
      IdSystem: 13,
      Name: "Messstellen",
      Longname: "Messstellen",
      Allow: 0,
      Icon: 13,
    },
    {
      IdSystem: 30,
      Name: "TK-Komponenten",
      Longname: "TK-Komponenten",
      Allow: 1,
      Icon: 30,
    },
    {
      IdSystem: 100,
      Name: "TALAS ICL",
      Longname: "Talas ICL Unterstationen",
      Allow: 1,
      Icon: 100,
    },
    {
      IdSystem: 110,
      Name: "DAUZ",
      Longname: "DauerzÃ¤hlstellen",
      Allow: 1,
      Icon: 110,
    },
    {
      IdSystem: 111,
      Name: "SMS Modem",
      Longname: "SMS Modem",
      Allow: 1,
      Icon: 111,
    },
    {
      IdSystem: 200,
      Name: "Sonstige",
      Longname: "Sonstige",
      Allow: 1,
      Icon: 200,
    },
  ],
  Rights: [
    {
      IdRight: 1,
    },
    {
      IdRight: 2,
    },
    {
      IdRight: 3,
    },
    {
      IdRight: 5,
    },
    {
      IdRight: 6,
    },
    {
      IdRight: 7,
    },
    {
      IdRight: 8,
    },
    {
      IdRight: 10,
    },
    {
      IdRight: 11,
    },
    {
      IdRight: 12,
    },
    {
      IdRight: 20,
    },
    {
      IdRight: 22,
    },
    {
      IdRight: 23,
    },
    {
      IdRight: 25,
    },
    {
      IdRight: 30,
    },
    {
      IdRight: 40,
    },
    {
      IdRight: 41,
    },
    {
      IdRight: 42,
    },
    {
      IdRight: 43,
    },
    {
      IdRight: 44,
    },
    {
      IdRight: 45,
    },
    {
      IdRight: 46,
    },
    {
      IdRight: 47,
    },
    {
      IdRight: 48,
    },
    {
      IdRight: 49,
    },
    {
      IdRight: 50,
    },
    {
      IdRight: 51,
    },
    {
      IdRight: 52,
    },
    {
      IdRight: 55,
    },
    {
      IdRight: 56,
    },
    {
      IdRight: 60,
    },
    {
      IdRight: 61,
    },
    {
      IdRight: 62,
    },
    {
      IdRight: 63,
    },
    {
      IdRight: 64,
    },
    {
      IdRight: 65,
    },
    {
      IdRight: 68,
    },
    {
      IdRight: 69,
    },
    {
      IdRight: 70,
    },
    {
      IdRight: 71,
    },
    {
      IdRight: 72,
    },
    {
      IdRight: 73,
    },
    {
      IdRight: 79,
    },
    {
      IdRight: 80,
    },
    {
      IdRight: 90,
    },
    {
      IdRight: 93,
    },
    {
      IdRight: 94,
    },
    {
      IdRight: 95,
    },
    {
      IdRight: 96,
    },
  ],
};

// 🔧 Laufzeit-Hilfsfunktionen für z. B. Mock-basierte UI-Tests

/**
 * Systemdaten zur Laufzeit ändern
 * @param {number} id
 * @param {object} changes
 */
export const updateSystem = (id, changes) => {
  const system = mockUserRights.Systems.find((s) => s.IdSystem === id);
  if (system) Object.assign(system, changes);
};

/**
 * Ein System aus dem Mock entfernen
 * @param {number} id
 */
export const deleteSystem = (id) => {
  const index = mockUserRights.Systems.findIndex((s) => s.IdSystem === id);
  if (index !== -1) mockUserRights.Systems.splice(index, 1);
};
