// =============================================================================
// PRIVACY POLICY GENERATION
// =============================================================================

import type { SupportedLanguage, ExportFormat } from './enums'
import type { LocalizedText } from './data-point'

/**
 * Abschnitt in der Privacy Policy
 */
export interface PrivacyPolicySection {
  id: string
  order: number
  title: LocalizedText
  content: LocalizedText
  dataPointIds: string[]
  isRequired: boolean
  isGenerated: boolean                      // true = aus Datenpunkten generiert
}

/**
 * Unternehmensinfo fuer Privacy Policy
 */
export interface CompanyInfo {
  name: string
  address: string
  city: string
  postalCode: string
  country: string
  email: string
  phone?: string
  website?: string
  dpoName?: string                          // Datenschutzbeauftragter
  dpoEmail?: string
  dpoPhone?: string
  registrationNumber?: string               // Handelsregister
  vatId?: string                            // USt-IdNr
}

/**
 * Generierte Privacy Policy
 */
export interface GeneratedPrivacyPolicy {
  id: string
  tenantId: string
  language: SupportedLanguage
  sections: PrivacyPolicySection[]
  companyInfo: CompanyInfo
  generatedAt: Date
  version: string
  format: ExportFormat
  content?: string                          // Rendered content (HTML/MD)
}

/**
 * Optionen fuer Privacy Policy Generierung
 */
export interface PrivacyPolicyGenerationOptions {
  language: SupportedLanguage
  format: ExportFormat
  includeDataPoints: string[]               // Welche Datenpunkte einschliessen
  customSections?: PrivacyPolicySection[]   // Zusaetzliche Abschnitte
  styling?: PrivacyPolicyStyling
}

/**
 * Styling-Optionen fuer PDF/HTML Export
 */
export interface PrivacyPolicyStyling {
  primaryColor?: string
  fontFamily?: string
  fontSize?: number
  headerFontSize?: number
  includeTableOfContents?: boolean
  includeDateFooter?: boolean
  logoUrl?: string
}
