/**
 * TOM Draft Prompt - Technische und Organisatorische Massnahmen (Art. 32 DSGVO)
 */

import type { DraftContext } from '../types'

export interface TOMDraftInput {
  context: DraftContext
  focusArea?: string
  instructions?: string
}

export function buildTOMDraftPrompt(input: TOMDraftInput): string {
  const { context, focusArea, instructions } = input
  const level = context.decisions.level
  const depthItems = context.constraints.depthRequirements.detailItems

  return `## Aufgabe: TOM-Dokument entwerfen (Art. 32 DSGVO)

### Unternehmensprofil
- Name: ${context.companyProfile.name}
- Branche: ${context.companyProfile.industry}
- Mitarbeiter: ${context.companyProfile.employeeCount}

### Compliance-Level: ${level}
Tiefe: ${context.constraints.depthRequirements.depth}

### Erforderliche Inhalte fuer Level ${level}:
${depthItems.map((item, i) => `${i + 1}. ${item}`).join('\n')}

### Constraints
${context.constraints.boundaries.map(b => `- ${b}`).join('\n')}

${context.constraints.riskFlags.length > 0 ? `### Risiko-Flags
${context.constraints.riskFlags.map(f => `- [${f.severity}] ${f.title}`).join('\n')}` : ''}

${focusArea ? `### Fokusbereich: ${focusArea}` : ''}
${instructions ? `### Zusaetzliche Anweisungen: ${instructions}` : ''}

${context.existingDocumentData ? `### Bestehende TOM: ${JSON.stringify(context.existingDocumentData).slice(0, 500)}` : ''}

### Antwort-Format
Antworte als JSON:
{
  "sections": [
    {
      "id": "zutrittskontrolle",
      "title": "Zutrittskontrolle",
      "content": "Massnahmen die unbefugten Zutritt zu Datenverarbeitungsanlagen verhindern...",
      "schemaField": "accessControl"
    },
    {
      "id": "zugangskontrolle",
      "title": "Zugangskontrolle",
      "content": "Massnahmen gegen unbefugte Systemnutzung...",
      "schemaField": "systemAccessControl"
    },
    {
      "id": "zugriffskontrolle",
      "title": "Zugriffskontrolle",
      "content": "Massnahmen zur Sicherstellung berechtigter Datenzugriffe...",
      "schemaField": "dataAccessControl"
    },
    {
      "id": "weitergabekontrolle",
      "title": "Weitergabekontrolle / Uebertragungssicherheit",
      "content": "Massnahmen bei Datenuebertragung und -transport...",
      "schemaField": "transferControl"
    },
    {
      "id": "eingabekontrolle",
      "title": "Eingabekontrolle",
      "content": "Nachvollziehbarkeit von Dateneingaben...",
      "schemaField": "inputControl"
    },
    {
      "id": "auftragskontrolle",
      "title": "Auftragskontrolle",
      "content": "Massnahmen zur weisungsgemaessen Auftragsverarbeitung...",
      "schemaField": "orderControl"
    },
    {
      "id": "verfuegbarkeitskontrolle",
      "title": "Verfuegbarkeitskontrolle",
      "content": "Schutz gegen Datenverlust...",
      "schemaField": "availabilityControl"
    },
    {
      "id": "trennungsgebot",
      "title": "Trennungsgebot",
      "content": "Getrennte Verarbeitung fuer verschiedene Zwecke...",
      "schemaField": "separationControl"
    }
  ]
}

Fuelle fehlende Informationen mit [PLATZHALTER: ...].
Halte die Tiefe exakt auf Level ${level}.`
}
