export const MY_KEY = "my_games";
export const HISTORY_KEY = "game_history";
const MAX = 100;

export function readSlugs(key: string): string[] {
  if (typeof window === "undefined") return [];
  try {
    const v = JSON.parse(localStorage.getItem(key) || "[]");
    return Array.isArray(v) ? v.filter((s) => typeof s === "string") : [];
  } catch {
    return [];
  }
}

function write(key: string, slugs: string[]) {
  localStorage.setItem(key, JSON.stringify(slugs.slice(0, MAX)));
  window.dispatchEvent(new Event("local-games-changed"));
}

export function isInMy(slug: string) {
  return readSlugs(MY_KEY).includes(slug);
}

export function toggleMy(slug: string) {
  const list = readSlugs(MY_KEY);
  const next = list.includes(slug) ? list.filter((s) => s !== slug) : [slug, ...list];
  write(MY_KEY, next);
  return next.includes(slug);
}

export function pushHistory(slug: string) {
  write(HISTORY_KEY, [slug, ...readSlugs(HISTORY_KEY).filter((s) => s !== slug)]);
}
