import type { PipelineStage } from '../../domain/pipeline'

export const STAGE_ORDER: PipelineStage[] = [
  'SAVED', 'CONTACTED', 'VISITED', 'NEGOTIATION', 'CLOSED_WON', 'CLOSED_LOST',
]

export const STAGE_LABELS: Record<string, string> = {
  SAVED: 'Interessiert', CONTACTED: 'Angefragt',
  VISITED: 'Besichtigt', NEGOTIATION: 'Verhandlung', CLOSED_WON: 'Gewonnen', CLOSED_LOST: 'Abgelehnt',
}

export const KI_RULES: { keywords: string[]; stage: PipelineStage; label: string }[] = [
  {
    keywords: ['vertrag unterschrieben', 'unterschrieben', 'deal abgeschlossen', 'abgeschlossen und fix', 'mietbeginn bestätigt'],
    stage: 'CLOSED_WON',
    label: 'Abschluss erkannt',
  },
  {
    keywords: ['mietvertrag', 'vertragsvorlage', 'anbiet', 'konditionen verhandl', 'preisvorstellung'],
    stage: 'NEGOTIATION',
    label: 'Verhandlung erkannt',
  },
  {
    keywords: ['besichtigungstermin', 'besichtigung', 'besichtigen', 'vorort termin', 'vor ort', 'terminvorschlag', 'termin bestätigt', 'termin vereinbart'],
    stage: 'VISITED',
    label: 'Besichtigungstermin erkannt',
  },
]

export function detectKiStage(text: string): { stage: PipelineStage; label: string } | null {
  const lower = text.toLowerCase()
  for (const rule of KI_RULES) {
    if (rule.keywords.some(kw => lower.includes(kw))) {
      return { stage: rule.stage, label: rule.label }
    }
  }
  return null
}
