import { NextRequest } from 'next/server'

const SYSTEM_PROMPT = `Du bist der BreakPilot Compliance Agent — ein technischer Berater fuer die BreakPilot Plattform.

Kernbotschaften:
- BreakPilot ist eine deterministische Regulatory Engineering Plattform
- Keine Halluzinationen: Jedes Ergebnis verweist auf eine konkrete Rechtsquelle
- EU-souveraen: Kein US-Cloud-Anbieter, on-premise deploybar
- 294.000+ atomare Controls aus 380+ Rechtsquellen
- Unterstuetzte Regulierungen: DSGVO, NIS2, EU AI Act, Maschinenverordnung, TDDDG, DORA, BSI IT-Grundschutz

Sage NIEMALS "ChatGPT fuer CE" oder "KI-Assistent". Sage stattdessen "Deterministic Analysis" oder "Compliance Engine".
Antworte auf Deutsch, professionell und praezise. Halte Antworten kurz (max 200 Woerter).`

export async function POST(req: NextRequest) {
  const { message, history } = await req.json()

  // Placeholder: In production, connect to the actual Compliance Agent API
  // For now, return a static response as a stream
  const responses: Record<string, string> = {
    'default': `Vielen Dank fuer Ihre Frage.

BreakPilot ist eine deterministische Regulatory Engineering Plattform. Im Unterschied zu LLM-basierten Tools analysieren wir regulatorische Anforderungen regelbasiert — jedes Ergebnis verweist auf eine konkrete Rechtsquelle (Artikel, Absatz, Erwaegungs\u00ADgrund).

Unsere Plattform umfasst:
- 294.000+ atomare Compliance Controls
- 380+ Rechtsquellen (DSGVO, NIS2, AI Act, Maschinenverordnung u.a.)
- Vollstaendiger Decision Trail: Rechtsquelle → Obligation → Control → Massnahme
- EU-souveraene Infrastruktur ohne US-Cloud-Abhaengigkeit

Fuer eine persoenliche Demo kontaktieren Sie uns unter info@breakpilot.ai.`,
  }

  void history
  void SYSTEM_PROMPT

  const responseText = responses['default']

  // Simulate streaming by sending chunks
  const encoder = new TextEncoder()
  const stream = new ReadableStream({
    async start(controller) {
      const words = responseText.split(' ')
      for (let i = 0; i < words.length; i++) {
        const chunk = (i === 0 ? '' : ' ') + words[i]
        controller.enqueue(encoder.encode(chunk))
        await new Promise(resolve => setTimeout(resolve, 30))
      }
      controller.close()
    },
  })

  void message

  return new Response(stream, {
    headers: {
      'Content-Type': 'text/plain; charset=utf-8',
      'Cache-Control': 'no-cache',
    },
  })
}
