/**
 * Privacy Policy Draft Prompt - Datenschutzerklaerung (Art. 13/14 DSGVO)
 */

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

export interface PrivacyPolicyDraftInput {
  context: DraftContext
  websiteUrl?: string
  instructions?: string
}

export function buildPrivacyPolicyDraftPrompt(input: PrivacyPolicyDraftInput): string {
  const { context, websiteUrl, instructions } = input
  const level = context.decisions.level
  const depthItems = context.constraints.depthRequirements.detailItems

  return `## Aufgabe: Datenschutzerklaerung entwerfen (Art. 13/14 DSGVO)

### Unternehmensprofil
- Name: ${context.companyProfile.name}
- Branche: ${context.companyProfile.industry}
${context.companyProfile.dataProtectionOfficer ? `- DSB: ${context.companyProfile.dataProtectionOfficer.name} (${context.companyProfile.dataProtectionOfficer.email})` : ''}
${websiteUrl ? `- Website: ${websiteUrl}` : ''}

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

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

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

### Antwort-Format
Antworte als JSON:
{
  "sections": [
    {
      "id": "verantwortlicher",
      "title": "Verantwortlicher",
      "content": "...",
      "schemaField": "controller"
    },
    {
      "id": "dsb",
      "title": "Datenschutzbeauftragter",
      "content": "...",
      "schemaField": "dpo"
    },
    {
      "id": "verarbeitungen",
      "title": "Verarbeitungstaetigkeiten und Zwecke",
      "content": "...",
      "schemaField": "processingPurposes"
    },
    {
      "id": "rechtsgrundlagen",
      "title": "Rechtsgrundlagen der Verarbeitung",
      "content": "...",
      "schemaField": "legalBases"
    },
    {
      "id": "empfaenger",
      "title": "Empfaenger und Datenweitergabe",
      "content": "...",
      "schemaField": "recipients"
    },
    {
      "id": "drittland",
      "title": "Uebermittlung in Drittlaender",
      "content": "...",
      "schemaField": "thirdCountryTransfers"
    },
    {
      "id": "speicherdauer",
      "title": "Speicherdauer",
      "content": "...",
      "schemaField": "retentionPeriods"
    },
    {
      "id": "betroffenenrechte",
      "title": "Ihre Rechte als betroffene Person",
      "content": "...",
      "schemaField": "dataSubjectRights"
    },
    {
      "id": "cookies",
      "title": "Cookies und Tracking",
      "content": "...",
      "schemaField": "cookies"
    },
    {
      "id": "aenderungen",
      "title": "Aenderungen dieser Datenschutzerklaerung",
      "content": "...",
      "schemaField": "changes"
    }
  ]
}

Halte die Tiefe exakt auf Level ${level}.`
}
