'use client'
import React from 'react'
import {
LoeschfristPolicy,
STATUS_LABELS,
PolicyStatus,
ReviewInterval, REVIEW_INTERVAL_LABELS,
} from '@/lib/sdk/loeschfristen-types'
import { TagInput } from './TagInput'
// ---------------------------------------------------------------------------
// Shared type (defined in EditorSectionsB to avoid circular imports)
// ---------------------------------------------------------------------------
export type { SetFn } from './EditorSectionsB'
import type { SetFn } from './EditorSectionsB'
// ---------------------------------------------------------------------------
// Re-exports from EditorSectionsB (keeps existing import paths working)
// ---------------------------------------------------------------------------
export { DeletionLogicSection, StorageSection } from './EditorSectionsB'
// ---------------------------------------------------------------------------
// Sektion 1: Datenobjekt
// ---------------------------------------------------------------------------
export function DataObjectSection({ policy, set }: { policy: LoeschfristPolicy; set: SetFn }) {
return (
1. Datenobjekt
set('dataObjectName', e.target.value)}
placeholder="z.B. Bewerbungsunterlagen"
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500" />
set('affectedGroups', v)}
placeholder="z.B. Bewerber, Mitarbeiter... (Enter zum Hinzufuegen)" />
set('dataCategories', v)}
placeholder="z.B. Stammdaten, Kontaktdaten... (Enter zum Hinzufuegen)" />
)
}
// ---------------------------------------------------------------------------
// Sektion 4: Verantwortlichkeit
// ---------------------------------------------------------------------------
export function ResponsibilitySection({ policy, set }: { policy: LoeschfristPolicy; set: SetFn }) {
return (
4. Verantwortlichkeit
)
}
// ---------------------------------------------------------------------------
// Sektion 5: VVT-Verknuepfung
// ---------------------------------------------------------------------------
export function VVTLinkSection({
policy, pid, vvtActivities, updatePolicy,
}: {
policy: LoeschfristPolicy; pid: string; vvtActivities: any[]
updatePolicy: (id: string, updater: (p: LoeschfristPolicy) => LoeschfristPolicy) => void
}) {
return (
5. VVT-Verknuepfung
{vvtActivities.length > 0 ? (
Verknuepfen Sie diese Loeschfrist mit einer Verarbeitungstaetigkeit aus Ihrem VVT.
{policy.linkedVVTActivityIds && policy.linkedVVTActivityIds.length > 0 && (
{policy.linkedVVTActivityIds.map((vvtId: string) => {
const activity = vvtActivities.find((a: any) => a.id === vvtId)
return (
{activity?.name || vvtId}
)
})}
)}
) : (
Kein VVT gefunden. Erstellen Sie zuerst ein Verarbeitungsverzeichnis, um hier Verknuepfungen herstellen zu koennen.
)}
)
}
// ---------------------------------------------------------------------------
// Sektion 5b: Auftragsverarbeiter-Verknuepfung
// ---------------------------------------------------------------------------
export function VendorLinkSection({
policy, pid, vendorList, updatePolicy,
}: {
policy: LoeschfristPolicy; pid: string; vendorList: Array<{id: string; name: string}>
updatePolicy: (id: string, updater: (p: LoeschfristPolicy) => LoeschfristPolicy) => void
}) {
return (
5b. Verknuepfte Auftragsverarbeiter
{vendorList.length > 0 ? (
Verknuepfen Sie diese Loeschfrist mit relevanten Auftragsverarbeitern.
{policy.linkedVendorIds && policy.linkedVendorIds.length > 0 && (
{policy.linkedVendorIds.map((vendorId: string) => {
const vendor = vendorList.find((v) => v.id === vendorId)
return (
{vendor?.name || vendorId}
)
})}
)}
) : (
Keine Auftragsverarbeiter gefunden. Erstellen Sie zuerst Auftragsverarbeiter im Vendor-Compliance-Modul, um hier Verknuepfungen herstellen zu koennen.
)}
)
}
// ---------------------------------------------------------------------------
// Sektion 6: Review-Einstellungen
// ---------------------------------------------------------------------------
export function ReviewSection({ policy, set }: { policy: LoeschfristPolicy; set: SetFn }) {
return (
6. Review-Einstellungen
set('tags', v)} placeholder="Tags hinzufuegen (Enter zum Bestaetigen)" />
)
}