// Geteilter Prüfungs-State pro Baustein.
// Die durablen Refs leben hier als Modul-Map: alle BausteinPanel-Instanzen desselben
// Bausteins nutzen DIESELBEN Refs. So überlebt der Verlauf das Remounten (Baustein-
// Wechsel, Fokus zu/auf) UND eine spät eintreffende Frage ist sofort reaktiv sichtbar.
// Geht bei Page-Reload verloren (Modul re-init) — bewusst kein DB-Aufwand.

import { ref } from 'vue'

const store = new Map() // key "topic::baustein" -> Refs (Verlauf + Fragen-Pool)

export function usePruefSlot(key) {
  if (!store.has(key)) {
    store.set(key, {
      messages: ref([]),
      phase: ref('idle'),
      aktuelleFrage: ref(''),
      letztesFeedback: ref(''),
      pool: ref([]),        // vorformulierte Frage-Objekte der AKTUELLEN Form ({form, ...})
      inflight: ref(0),     // laufende Pool-Generierungen (instanzübergreifend koordiniert)
      poolForm: ref(''),    // Form, für die der Pool gefüllt ist — bei Wechsel leeren
      musterQuelle: ref([]), // unveränderliche Voll-Liste der Frage-Muster (leer = Fallback)
      musterPool: ref([]),  // Arbeitskopie: gezogene Saat ohne Zurücklegen; leer → Reset
      musterGeladen: ref(false), // Muster-Sidecar schon abgerufen?
      quizAktuell: ref(null), // laufende Quiz-Frage {frage, optionen, gewaehlt, fertig, ...}
      lueckAktuell: ref(null), // laufende Lückentext-Aufgabe {satz, loesung, ..., fertig}
    })
  }
  return store.get(key)
}

export const clearPruef = (key) => store.delete(key)
