/* Federica Gori — Diario: temi/condizioni + articoli (esempio on-brand).
   Organizzato PER TEMA, come richiesto. Vocabolario coerente con il metodo
   (fitoterapia, gemmoterapia, nutraceutica, Vegatest) anche per la SEO. */

const FG_THEMES = [
  { id: "intestino", label: "Intestino e digestione", icon: "activity", tone: "sand",
    blurb: "Il cuore della medicina funzionale: tutto parte dall'intestino. Gonfiore, disbiosi, intolleranze." },
  { id: "energia", label: "Stanchezza ed energia", icon: "flame", tone: "clay",
    blurb: "Affaticamento cronico, «sono sempre stanco/a», cali di energia che non tornano." },
  { id: "ormoni", label: "Ormoni ed equilibrio", icon: "compass", tone: "deep",
    blurb: "Tiroide, ciclo, menopausa, sbalzi d'umore di origine ormonale." },
  { id: "nervoso", label: "Stress, ansia e sistema nervoso", icon: "wind", tone: "sand",
    blurb: "Il piano emotivo del sistema — uno dei tre livelli del metodo." },
  { id: "pelle", label: "Pelle", icon: "droplet", tone: "clay",
    blurb: "Acne, eczema, psoriasi: lo specchio di squilibri interni." },
  { id: "sonno", label: "Sonno", icon: "moon", tone: "deep",
    blurb: "Insonnia, sonno non riposante, ritmi alterati." },
];

const FG_POSTS = [
  { slug: "intestino-secondo-cervello", theme: "intestino", featured: true,
    title: "L'intestino, il nostro secondo cervello",
    excerpt: "Perché partire dall'intestino quando il corpo manda segnali confusi: infiammazione, energia e umore parlano la stessa lingua.",
    date: "12 giugno 2026", read: "5 min", tone: "sand" },
  { slug: "gonfiore-disbiosi", theme: "intestino",
    title: "Gonfiore e disbiosi: leggere i segnali",
    excerpt: "Quando la pancia gonfia non è «solo digestione». Come fitoterapia e riequilibrio alimentare lavorano sulle cause, non sul sintomo.",
    date: "29 maggio 2026", read: "4 min", tone: "sand" },

  { slug: "sono-sempre-stanca", theme: "energia",
    title: "«Sono sempre stanca»: da dove iniziamo",
    excerpt: "La stanchezza cronica non è pigrizia. Tiroide, intestino, surreni: dove guardo e perché il riposo da solo non basta.",
    date: "16 maggio 2026", read: "5 min", tone: "clay" },
  { slug: "energia-nutraceutica", theme: "energia",
    title: "Energia che non torna: il ruolo della nutraceutica",
    excerpt: "Micronutrienti, ritmi e recupero: piccoli aggiustamenti mirati che rimettono in moto un sistema rallentato.",
    date: "2 maggio 2026", read: "4 min", tone: "clay" },

  { slug: "tiroide-lettura-funzionale", theme: "ormoni",
    title: "Tiroide e stanchezza: una lettura funzionale",
    excerpt: "Oltre il valore «nella norma»: come osservo la tiroide dentro il sistema, non come un organo isolato.",
    date: "23 aprile 2026", read: "6 min", tone: "deep" },
  { slug: "corpo-femminile-fasi", theme: "ormoni",
    title: "Accompagnare il corpo femminile nelle sue fasi",
    excerpt: "Ciclo, fertilità, menopausa: un approccio naturale che rispetta i tempi e ascolta i segnali, senza forzare.",
    date: "9 aprile 2026", read: "5 min", tone: "deep" },

  { slug: "stress-comincia-dal-respiro", theme: "nervoso",
    title: "Lo stress comincia dal respiro",
    excerpt: "Tre minuti al giorno per riportare il sistema nervoso in equilibrio. La fisiologia spiegata in modo semplice.",
    date: "27 marzo 2026", read: "4 min", tone: "sand" },
  { slug: "piano-emotivo-del-sistema", theme: "nervoso",
    title: "Il piano emotivo del sistema",
    excerpt: "Uno dei tre livelli del metodo: perché ansia e tensione non si affrontano ignorando il corpo. Gemmoterapia e ritmi.",
    date: "13 marzo 2026", read: "5 min", tone: "sand" },

  { slug: "pelle-specchio-interno", theme: "pelle",
    title: "La pelle, specchio di ciò che accade dentro",
    excerpt: "Acne, eczema, psoriasi: quando la pelle racconta uno squilibrio interno, non soltanto cutaneo.",
    date: "28 febbraio 2026", read: "4 min", tone: "clay" },
  { slug: "acne-eta-adulta", theme: "pelle",
    title: "Acne in età adulta: cosa guardo davvero",
    excerpt: "Intestino, ormoni, infiammazione: la pelle come ultimo anello di una catena che parte da lontano.",
    date: "12 febbraio 2026", read: "5 min", tone: "clay" },

  { slug: "sonno-che-non-ripara", theme: "sonno",
    title: "Quando il sonno non ripara",
    excerpt: "Addormentarsi non basta: ritmi, cortisolo e luce. Come ricostruire un sonno che rigenera davvero.",
    date: "30 gennaio 2026", read: "5 min", tone: "deep" },
  { slug: "insonnia-corpo-in-allerta", theme: "sonno",
    title: "Insonnia: il corpo che non riesce a spegnersi",
    excerpt: "Un sistema nervoso in allerta e i rimedi naturali per tornare a rallentare, sera dopo sera.",
    date: "15 gennaio 2026", read: "4 min", tone: "deep" },
];

function fgTheme(id) { return FG_THEMES.find((t) => t.id === id); }
function fgThemeLabel(id) { const t = fgTheme(id); return t ? t.label : ""; }

/* Ponte diario→CMS (#22): gli articoli PUBBLICATI su cms.federicagori.it
   sostituiscono gli esempi hardcoded (FG_POSTS resta il fallback se il CMS è
   vuoto o irraggiungibile). Convenzione: `category` dell'articolo = id del tema
   (intestino, energia, ormoni, nervoso, pelle, sonno); categoria sconosciuta →
   primo tema, così l'articolo resta comunque visibile. */
const FG_CMS = "https://cms.federicagori.it";
async function fgFetchPosts() {
  try {
    const r = await fetch(FG_CMS + "/api/articles?where[_status][equals]=published&limit=50&sort=-publishedAt&depth=1");
    if (!r.ok) return null;
    const noti = new Set(FG_THEMES.map((t) => t.id));
    const toni = Object.fromEntries(FG_THEMES.map((t) => [t.id, t.tone]));
    const posts = ((await r.json()).docs || [])
      .filter((d) => d.title && d.slug)
      .map((d, i) => {
        const theme = noti.has(d.category) ? d.category : FG_THEMES[0].id;
        return {
          slug: d.slug, theme, featured: i === 0,
          title: d.title, excerpt: d.excerpt || "",
          date: d.publishedAt ? new Date(d.publishedAt).toLocaleDateString("it-IT", { day: "numeric", month: "long", year: "numeric" }) : "",
          read: d.readingTime || "", tone: toni[theme] || "sand",
          // Copertina propria dal CMS (depth=1); senza, la card usa la foto del tema.
          image: d.coverImage && typeof d.coverImage === "object" && d.coverImage.url
            ? (d.coverImage.url.startsWith("http") ? d.coverImage.url : FG_CMS + d.coverImage.url)
            : undefined,
          // Articolo reale dal CMS → ha la sua pagina; gli esempi fallback no.
          url: "/diario/" + encodeURIComponent(d.slug),
        };
      });
    return posts.length ? posts : null;
  } catch { return null; }
}

Object.assign(window, { FG_CMS, FG_THEMES, FG_POSTS, fgTheme, fgThemeLabel, fgFetchPosts });
