/**
 * Cross-Document Validation Prompt
 */

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

export interface CrossCheckInput {
  context: ValidationContext
  focusDocuments?: string[]
  instructions?: string
}

export function buildCrossCheckPrompt(input: CrossCheckInput): string {
  const { context, focusDocuments, instructions } = input

  return `## Aufgabe: Cross-Dokument-Konsistenzpruefung

### Scope-Level: ${context.scopeLevel}

### Vorhandene Dokumente:
${context.documents.map(d => `- ${d.type}: ${d.contentSummary}`).join('\n')}

### Cross-Referenzen:
- VVT-Kategorien: ${context.crossReferences.vvtCategories.join(', ') || 'Keine'}
- DSFA-Risiken: ${context.crossReferences.dsfaRisks.join(', ') || 'Keine'}
- TOM-Controls: ${context.crossReferences.tomControls.join(', ') || 'Keine'}
- Loeschfristen-Kategorien: ${context.crossReferences.retentionCategories.join(', ') || 'Keine'}

### Tiefenpruefung pro Dokument:
${context.documents.map(d => {
    const req = context.depthRequirements[d.type]
    return req ? `- ${d.type}: Erforderlich=${req.required}, Tiefe=${req.depth}` : `- ${d.type}: Keine Requirements`
  }).join('\n')}

${focusDocuments ? `### Fokus auf: ${focusDocuments.join(', ')}` : ''}
${instructions ? `### Zusaetzliche Anweisungen: ${instructions}` : ''}

### Pruefkriterien:
1. Jede VVT-Taetigkeit muss einen TOM-Verweis haben
2. Jede VVT-Kategorie muss eine Loeschfrist haben
3. Bei DSFA-pflichtigen Verarbeitungen muss eine DSFA existieren
4. TOM-Massnahmen muessen zum Risikoprofil passen
5. Loeschfristen duerfen gesetzliche Minima nicht unterschreiten
6. Dokument-Tiefe muss Level ${context.scopeLevel} entsprechen

### Antwort-Format
Antworte als JSON:
{
  "passed": true/false,
  "errors": [
    {
      "id": "ERR-001",
      "severity": "error",
      "category": "scope_violation|inconsistency|missing_content|depth_mismatch|cross_reference",
      "title": "...",
      "description": "...",
      "documentType": "vvt|tom|dsfa|...",
      "crossReferenceType": "...",
      "legalReference": "Art. ... DSGVO",
      "suggestion": "..."
    }
  ],
  "warnings": [...],
  "suggestions": [...]
}`
}
