/**
 * VVT Draft Prompt - Verarbeitungsverzeichnis (Art. 30 DSGVO)
 */

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

export interface VVTDraftInput {
  context: DraftContext
  activityName?: string
  activityPurpose?: string
  instructions?: string
}

export function buildVVTDraftPrompt(input: VVTDraftInput): string {
  const { context, activityName, activityPurpose, instructions } = input
  const level = context.decisions.level
  const depthItems = context.constraints.depthRequirements.detailItems

  return `## Aufgabe: VVT-Eintrag entwerfen (Art. 30 DSGVO)

### Unternehmensprofil
- Name: ${context.companyProfile.name}
- Branche: ${context.companyProfile.industry}
- Mitarbeiter: ${context.companyProfile.employeeCount}
- Geschaeftsmodell: ${context.companyProfile.businessModel}
${context.companyProfile.dataProtectionOfficer ? `- DSB: ${context.companyProfile.dataProtectionOfficer.name} (${context.companyProfile.dataProtectionOfficer.email})` : '- DSB: Nicht benannt'}

### 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}: ${f.recommendation}`).join('\n')}` : ''}

${activityName ? `### Gewuenschte Verarbeitungstaetigkeit: ${activityName}` : ''}
${activityPurpose ? `### Zweck: ${activityPurpose}` : ''}
${instructions ? `### Zusaetzliche Anweisungen: ${instructions}` : ''}

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

### Antwort-Format
Antworte als JSON:
{
  "sections": [
    {
      "id": "bezeichnung",
      "title": "Bezeichnung der Verarbeitungstaetigkeit",
      "content": "...",
      "schemaField": "name"
    },
    {
      "id": "verantwortlicher",
      "title": "Verantwortlicher",
      "content": "...",
      "schemaField": "controller"
    },
    {
      "id": "zweck",
      "title": "Zweck der Verarbeitung",
      "content": "...",
      "schemaField": "purpose"
    },
    {
      "id": "rechtsgrundlage",
      "title": "Rechtsgrundlage",
      "content": "...",
      "schemaField": "legalBasis"
    },
    {
      "id": "betroffene",
      "title": "Kategorien betroffener Personen",
      "content": "...",
      "schemaField": "dataSubjects"
    },
    {
      "id": "datenkategorien",
      "title": "Kategorien personenbezogener Daten",
      "content": "...",
      "schemaField": "dataCategories"
    },
    {
      "id": "empfaenger",
      "title": "Empfaenger",
      "content": "...",
      "schemaField": "recipients"
    },
    {
      "id": "speicherdauer",
      "title": "Speicherdauer / Loeschfristen",
      "content": "...",
      "schemaField": "retentionPeriod"
    },
    {
      "id": "tom_referenz",
      "title": "TOM-Referenz",
      "content": "...",
      "schemaField": "tomReference"
    }
  ]
}

Fuelle fehlende Informationen mit [PLATZHALTER: Beschreibung was hier eingetragen werden muss].
Halte die Tiefe exakt auf Level ${level} (${context.constraints.depthRequirements.depth}).`
}
