import { eventStorageKey } from "./constants";
import { EventPayload } from "./types";

export const generateSessionId = (): string => {
  return "session_" + Math.random().toString(16).substring(2, 18);
};

export const saveToLocalStorage = (events: EventPayload[]): void => {
  try {
    localStorage.setItem(eventStorageKey, JSON.stringify(events));
  } catch (error) {
    console.error("PulseX: Error saving to localStorage:", error);
  }
};

export const loadQueueFromLocalStorage = (): EventPayload[] => {
  try {
    const data = localStorage.getItem(eventStorageKey);
    return data ? JSON.parse(data) : [];
  } catch (error) {
    console.error("PulseX: Error loading from localStorage:", error);
    return [];
  }
};

export const deepCopy = <T>(data: T): T => {
  return JSON.parse(JSON.stringify(data));
};
