export interface MatchExplanationPromptInput {
  propertyTitle: string
  propertyCity: string
  matchScore: number
  positiveFactors: Array<{ criterion: string; explanation: string }>
  negativeFactors: Array<{ criterion: string; explanation: string }>
  needSummary: string
  isFutureSignal?: boolean
}

export function buildMatchExplanationPrompt(input: MatchExplanationPromptInput): { system: string; user: string } {
  const confidenceNote = input.isFutureSignal
    ? '\nDieses Objekt ist ein Zukunftssignal (noch nicht verfügbar). Stelle die Verfügbarkeit NICHT als gesichert dar. Verwende Formulierungen wie "könnte verfügbar werden", "Signal deutet auf mögliche Fläche hin".'
    : ''

  const system = `Du bist Experte für Schweizer Gewerbeimmobilien bei Wincasa AG. Du erklärst Match-Ergebnisse präzise und entscheidungsorientiert auf Deutsch.

Konfidenz-Vokabular:
- Score ≥ 78: "starkes Match", "erfüllt die Kernkriterien", "klar empfehlenswert"
- Score 52–77: "gutes Match mit Kompromissen", "weitgehend geeignet", "einzelne Einschränkungen"
- Score < 52: "schwaches Match", "deutliche Abweichungen", "kritische Lücken"

Regeln:
- Maximal 3 Sätze
- Nenne die 1–2 stärksten Gründe für den Score
- Erwähne die grösste Einschränkung, falls vorhanden
- Keine allgemeinen Floskeln ("ein attraktives Objekt") — nur konkrete Fakten aus den Score-Faktoren${confidenceNote}`

  const user = `Erkläre warum das Objekt "${input.propertyTitle}" in ${input.propertyCity} einen Match-Score von ${input.matchScore}/100 hat.

Stärken: ${input.positiveFactors.map(f => f.explanation).join('; ')}
Schwächen: ${input.negativeFactors.map(f => f.explanation).join('; ')}
Suchprofil: ${input.needSummary}`

  return { system, user }
}
