'use client'

import { useMasterDataValues } from './use-master-data'

// ── All canonical placeholder keys and their German defaults ──────────────────

export const PLACEHOLDER_DEFAULTS: Record<string, string> = {
  // Projekt-Felder
  fahrzeugprojekt:          'z.B. G70 Plattform',
  produktlinie:             'z.B. Hochvolt-Batteriemodule',
  lieferumfang:             'z.B. Gehäuse, Kühlplatten, Zellkontaktierung',
  order_reason:             'z.B. Kapazitätsaufbau für SOP',
  order_objective:          'z.B. Prozessfähigkeit nachweisen',
  // Workshop-Felder
  'workshop.improvement_idea':    'z.B. Taktzeit um 15% reduzieren',
  'workshop.problem_description': 'z.B. Ausschussrate bei Schweißnaht zu hoch',
  'workshop.root_cause':          'z.B. Schweißparameter nicht optimiert',
  'workshop.action_item':         'z.B. Parameterversuch mit neuem Drahtvorschub',
  // Wertstrom-Felder
  'wertstrom.process_name': 'z.B. Spritzguss Gehäuse',
  'wertstrom.machine_name': 'z.B. Engel 800t #3',
  'wertstrom.comment':      'z.B. Rüstzeit inkl. Werkzeugwechsel',
  // LSC-Felder
  'lsc.shift_comment':    'z.B. Maschinenstillstand 14:00–14:30',
  'lsc.deviation_reason': 'z.B. Materialengpass Lieferant B',
  // OEE-Felder
  'oee.loss_description': 'z.B. Werkzeugbruch nach 2.000 Zyklen',
  'oee.countermeasure':   'z.B. Präventiver Werkzeugwechsel alle 1.500 Zyklen',
  // Fabrikanalyse-Felder
  'fabrikanalyse.comment':        'z.B. 5S nicht durchgängig in Logistikbereich',
  'fabrikanalyse.finding':        'z.B. Kein FIFO-Prinzip im Rohstofflager',
  'fabrikanalyse.recommendation': 'z.B. Kanban-System für C-Teile einführen',
  // Projekt-Notizen
  'project.notes':       'z.B. Rücksprache mit Einkauf nötig vor Audit',
  'project.visit_notes': 'z.B. Ansprechpartner Werk: Herr Müller, Tel. +49...',
  // Lieferanten
  'supplier.contact_notes': 'z.B. Qualitätsleiter: Fr. Schmidt, erreichbar Di–Do',
}

// ── Hook ───────────────────────────────────────────────────────────────
// Returns a ph(key) function. DB values override defaults transparently.
// Single PLACEHOLDER_TEXTS fetch is cached by useMasterDataValues.

export function usePlaceholders(): (key: string) => string {
  const { values } = useMasterDataValues('PLACEHOLDER_TEXTS')
  const fromDb = values.length > 0
    ? Object.fromEntries(values.map(v => [v.code, v.label]))
    : {}
  return (key: string) => fromDb[key] ?? PLACEHOLDER_DEFAULTS[key] ?? ''
}
