import "server-only";
import fs from "node:fs";
import path from "node:path";
import type { Realisation } from "./realisations";

const DATA_PATH = path.join(process.cwd(), "data", "realisations.json");

export function loadRealisations(): Realisation[] {
  try {
    const raw = fs.readFileSync(DATA_PATH, "utf8");
    const parsed = JSON.parse(raw);
    if (!Array.isArray(parsed)) return [];
    return parsed as Realisation[];
  } catch {
    return [];
  }
}

export function saveRealisations(items: Realisation[]) {
  fs.mkdirSync(path.dirname(DATA_PATH), { recursive: true });
  fs.writeFileSync(DATA_PATH, JSON.stringify(items, null, 2) + "\n", "utf8");
}

export function getRealisationBySlug(slug: string): Realisation | undefined {
  return loadRealisations().find((r) => r.slug === slug);
}

export function getNeighbours(slug: string): {
  prev: Realisation | null;
  next: Realisation | null;
} {
  const items = loadRealisations();
  const i = items.findIndex((r) => r.slug === slug);
  if (i < 0) return { prev: null, next: null };
  const prev = i > 0 ? items[i - 1] : items[items.length - 1];
  const next = i < items.length - 1 ? items[i + 1] : items[0];
  return { prev: prev ?? null, next: next ?? null };
}
