// =============================================================================
// TOM Generator Module - Enums & Literal Types
// DSGVO Art. 32 Technical and Organizational Measures
// =============================================================================

export type TOMGeneratorStepId =
  | 'scope-roles'
  | 'data-categories'
  | 'architecture-hosting'
  | 'security-profile'
  | 'risk-protection'
  | 'review-export'

export type CompanyRole = 'CONTROLLER' | 'PROCESSOR' | 'JOINT_CONTROLLER'

export type DataCategory =
  | 'IDENTIFICATION'
  | 'CONTACT'
  | 'FINANCIAL'
  | 'PROFESSIONAL'
  | 'LOCATION'
  | 'BEHAVIORAL'
  | 'BIOMETRIC'
  | 'HEALTH'
  | 'GENETIC'
  | 'POLITICAL'
  | 'RELIGIOUS'
  | 'SEXUAL_ORIENTATION'
  | 'CRIMINAL'

export type DataSubject =
  | 'EMPLOYEES'
  | 'CUSTOMERS'
  | 'PROSPECTS'
  | 'SUPPLIERS'
  | 'MINORS'
  | 'PATIENTS'
  | 'STUDENTS'
  | 'GENERAL_PUBLIC'

export type HostingLocation =
  | 'DE'
  | 'EU'
  | 'EEA'
  | 'THIRD_COUNTRY_ADEQUATE'
  | 'THIRD_COUNTRY'

export type HostingModel = 'ON_PREMISE' | 'PRIVATE_CLOUD' | 'PUBLIC_CLOUD' | 'HYBRID'

export type MultiTenancy = 'SINGLE_TENANT' | 'MULTI_TENANT' | 'DEDICATED'

export type ControlApplicability =
  | 'REQUIRED'
  | 'RECOMMENDED'
  | 'OPTIONAL'
  | 'NOT_APPLICABLE'

export type DocumentType =
  | 'AVV'
  | 'DPA'
  | 'SLA'
  | 'NDA'
  | 'POLICY'
  | 'CERTIFICATE'
  | 'AUDIT_REPORT'
  | 'OTHER'

export type ProtectionLevel = 'NORMAL' | 'HIGH' | 'VERY_HIGH'

export type CIARating = 1 | 2 | 3 | 4 | 5

export type ControlCategory =
  | 'ACCESS_CONTROL'
  | 'ADMISSION_CONTROL'
  | 'ACCESS_AUTHORIZATION'
  | 'TRANSFER_CONTROL'
  | 'INPUT_CONTROL'
  | 'ORDER_CONTROL'
  | 'AVAILABILITY'
  | 'SEPARATION'
  | 'ENCRYPTION'
  | 'PSEUDONYMIZATION'
  | 'RESILIENCE'
  | 'RECOVERY'
  | 'REVIEW'

export type CompanySize = 'MICRO' | 'SMALL' | 'MEDIUM' | 'LARGE' | 'ENTERPRISE'

export type DataVolume = 'LOW' | 'MEDIUM' | 'HIGH' | 'VERY_HIGH'

export type AuthMethodType =
  | 'PASSWORD'
  | 'MFA'
  | 'SSO'
  | 'CERTIFICATE'
  | 'BIOMETRIC'

export type BackupFrequency = 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY'

export type ReviewFrequency = 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUAL' | 'ANNUAL'

export type ControlPriority = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'

export type ControlComplexity = 'LOW' | 'MEDIUM' | 'HIGH'

export type ImplementationStatus = 'NOT_IMPLEMENTED' | 'PARTIAL' | 'IMPLEMENTED'

export type EvidenceStatus = 'PENDING' | 'ANALYZED' | 'VERIFIED' | 'REJECTED'

export type ConditionOperator =
  | 'EQUALS'
  | 'NOT_EQUALS'
  | 'CONTAINS'
  | 'GREATER_THAN'
  | 'IN'
