/**
 * Default title suggestion for a QAF-imported value stream (QVS-P1, KAR-970).
 *
 * `[Lieferant] · [Projekt] · [Variante] · QAF-Wertstrom` — only parts that
 * actually exist (field-mapping report, "Abgeleitete Werte" __title__ rule).
 * The source file name is NEVER part of the title (Spec 10) — callers that
 * want to show it do so separately (import record, not the VSM title).
 */

export interface DefaultTitleParts {
  supplier?: string | null
  project?: string | null
  variant?: string | null
}

const SUFFIX = 'QAF-Wertstrom'

export function buildDefaultTitle(parts: DefaultTitleParts): string {
  const present = [parts.supplier, parts.project, parts.variant]
    .map((p) => p?.trim())
    .filter((p): p is string => !!p)
  return [...present, SUFFIX].join(' · ')
}

/**
 * Title for the "separater Vergleichs-Wertstrom" reimport option (QVS-P5,
 * KAR-974, Spec 21 "Create a separate comparison copy"): `<baseTitle> ·
 * Reimport <TT.MM.JJJJ>`. `date` is a required parameter, never read from
 * `Date.now()` internally, so callers (and their tests) stay deterministic —
 * the one caller that isn't a test (reimport.ts) passes a real `new Date()`.
 */
export function buildReimportComparisonTitle(baseTitle: string, date: Date): string {
  const formatted = date.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' })
  return `${baseTitle.trim()} · Reimport ${formatted}`
}
