// Canonical section structure + ⓘ info-texts for the Multi-QAF comparison
// detail view (KAR-947, following the KAR-844 numbered-section convention —
// see qaf-section-registry.ts for the Standard/G60 precedent this mirrors).
// Own, SEPARATE numbering from QAF_SECTION_TITLES: a Multi-QAF container
// comparison has no bucket/bridge/movers/scenario concept in the Master-
// Prompt §18 sense — reusing those numbers here would imply a 1:1 content
// correspondence that does not exist. Additive only: this file introduces no
// change to qaf-section-registry.ts or qaf-g60-section-info.ts.
// tdd-guard:skip — static registry, no logic.

import type { SectionInfo } from '@/components/qaf-differences/qaf-section'

export const MULTI_QAF_SECTION_TITLES = {
  overview: '1. Überblick',
  matching: '2. Varianten-Matching',
  container: '3. Container-Struktur',
  material: '4. Material-Vergleich',
  profiles: '5. Fertigungs-/Rüstprofile',
  reconciliation: '6. Rekonziliation je Variante',
  aggregate: '7. Aggregat-Impact',
  // KAR-951 — own, separate surface (never merged into `aggregate` above,
  // see summary-totals-differ.ts's own "§19 boundary" doc): what the
  // Summary sheet's OWN computed totals say per matched variant, diffed
  // ALT<->NEU directly (materialCosts/manufacturingCosts/.../offerPrice).
  summaryTotals: '8. Summary-Kennzahlen je Variante',
} as const

export type MultiQafSectionKey = keyof typeof MULTI_QAF_SECTION_TITLES

export const MULTI_QAF_SECTION_INFO: Record<MultiQafSectionKey, SectionInfo> = {
  overview: {
    text: 'Erkannte M-QAF-Familie und Template-Klassifikation je Seite (ALT/NEU), Varianten-Zahlen (aktiv/inaktiv/Hilfsspalten), Parsing-Confidence und Container-Warnungen — die Basis, bevor irgendein Befund unten interpretiert wird.',
    formula: 'aktiv = activeVariants · inaktiv/reserviert = inactiveVariants · Hilfsspalten = auxiliaryScenarios + helperColumns',
  },
  matching: {
    text: 'Wie ALT- und NEU-Varianten einander zugeordnet wurden: automatische Treffer mit Konfidenz und Evidenz-Dimensionen, neue/entfallene Varianten, und unsichere Fälle, die eine manuelle Entscheidung brauchen. Jede Zuordnung lässt sich hier überschreiben.',
    formula: 'Kaskade: raw_exact (1.0) > core_subset_exact (Ø 0,6–0,92) > fuzzy_label_similarity (Ø ≤0,8) > manual_override (1.0, fixiert)',
    example: 'Zwei Varianten mit identischem steeringSide+region aber vertauschter Spalte matchen trotzdem exakt (Reihenfolge ist NIE Teil der Identität).',
  },
  container: {
    text: 'Strukturvergleich der beiden Container selbst (nicht der Werte darin): hinzugefügte/entfallene/umbenannte/vertauschte Varianten, geänderte Varianten-Dimensionen, Struktur des gemeinsamen Material-Grids, hinzugefügte/entfallene Profile und Template-/Sheet-Änderungen. Ob referenzierte externe Arbeitsmappen (Verknüpfungen) sich zwischen ALT und NEU geändert haben, lässt sich aus den beiden gespeicherten Vergleichs-Datensätzen allein nicht ermitteln — dieser Punkt wird bewusst als „nicht erfasst" statt als „unverändert" ausgewiesen.',
  },
  material: {
    text: 'Zweistufiger Material-Vergleich: EINE gemeinsame Preisänderung (Shared-Component-Ebene) erscheint als EIN Befund mit der Liste der betroffenen Varianten und ihrem jeweiligen Impact — nie als N Einzelbefunde. Darunter die varianten-spezifische Zuordnungsebene (Faktor-Änderung, Ein-/Ausschluss, Substitutionsverdacht).',
    formula: 'Impact je Variante = Faktor × Δ Einheitskosten (nur wenn beide Seiten dieselbe Währung tragen, sonst nicht berechenbar statt geraten)',
  },
  profiles: {
    text: 'Fertigungs-, Rüstkosten- und Werkzeug-Profile: geänderte Komponentenwerte, geänderte Profil-Totale mit betroffenen Varianten, Bindungs-Wert-Impact (gebunden/gelöst/umgebunden), neue/entfallene Profile, inkonsistente Bindungen und die Summary-Rekonziliation je Profil.',
  },
  reconciliation: {
    text: 'Je virtueller Variante: stimmen Detail- und Summenwerte intern überein? „nicht prüfbar" bedeutet ehrlich „konnte nicht unabhängig verifiziert werden" — NIE als grün/bestanden dargestellt, auch wenn keine Abweichung gemeldet wird.',
    formula: 'bestanden = innerhalb Toleranz · abweichung = außerhalb Toleranz · nicht_pruefbar = fehlende Daten, gleiche Quelle ohne unabhängigen Gegencheck, Mixed-Currency oder ungematchte Variante',
  },
  aggregate: {
    text: 'Ob und wie sich die Einzelbefunde zu einer Gesamtzahl aufsummieren lassen — NUR wenn alle 6 Gates bestehen (kompatible Währungen, Volumen vorhanden, keine Duplikate/Unsicherheiten, konsistente Einheiten, valide Baseline, keine blockierten kritischen Zuordnungen). Jede ausgeschlossene Variante steht mit Grund dabei; ohne bestandene Gates gibt es bewusst keine Zahl statt einer falschen.',
  },
  summaryTotals: {
    text: 'Vergleicht die vom Summary-Sheet selbst berechneten Kennzahlen je Variante direkt ALT↔NEU (Materialkosten, Fertigungskosten, Summe Herstellkosten, Werkzeug-/Vorrichtungskosten, Rüstkosten-Allokation, Ausschuss, Sonstige Zuschläge/Overhead, Angebotsbasispreis, Angebotspreis) — unabhängig davon, OB eine Material- oder Profil-Änderung das erklärt. Ein EIGENER Ausweis, NICHT Teil der Aggregat-Impact-Summe oben (kein Doppelzählen). „Nicht ermittelbar" (eine oder beide Seiten ohne Wert) sieht NIE wie „unverändert" aus.',
    formula: 'Delta = NEU − ALT · Währungswechsel ist ein eigener Befund (Werte werden nie über verschiedene Währungen verrechnet) · Summary-basierte Summe = Σ Delta nur über "geändert"+gleiche-Währung-Befunde, je Währung',
  },
}
