// =============================================================================
// CATALOG & RETENTION MATRIX
// =============================================================================

import type { DataPointCategory, RetentionPeriod } from './enums'
import type { LocalizedText, DataPoint } from './data-point'

/**
 * Gesamter Datenpunktkatalog eines Tenants
 */
export interface DataPointCatalog {
  id: string
  tenantId: string
  version: string
  dataPoints: DataPoint[]                   // Vordefinierte (32)
  customDataPoints: DataPoint[]             // Kundenspezifische
  retentionMatrix: RetentionMatrixEntry[]
  createdAt: Date
  updatedAt: Date
}

/**
 * Eintrag in der Retention Matrix
 */
export interface RetentionMatrixEntry {
  category: DataPointCategory
  categoryName: LocalizedText
  standardPeriod: RetentionPeriod
  legalBasis: string
  exceptions: RetentionException[]
}

/**
 * Ausnahme von der Standard-Loeschfrist
 */
export interface RetentionException {
  condition: LocalizedText
  period: RetentionPeriod
  reason: LocalizedText
}
