export function getVisitorId() {
  if (typeof window === "undefined") return null;

  let visitorId = localStorage.getItem("visitor_id");

  if (!visitorId) {
    if (crypto?.randomUUID) {
      visitorId = crypto.randomUUID();
    } else {
      visitorId = generateUUID();
    }

    localStorage.setItem("visitor_id", visitorId);
  }

  return visitorId;
}

function generateUUID() {
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
    const r = (Math.random() * 16) | 0;
    const v = c === "x" ? r : (r & 0x3) | 0x8;
    return v.toString(16);
  });
}
