/**
 * Categories for website classification
 */
export enum WebsiteCategory {
  // Government categories
  GOVERNMENT_FEDERAL = 'GOVERNMENT_FEDERAL',
  GOVERNMENT_PROVINCIAL = 'GOVERNMENT_PROVINCIAL',
  GOVERNMENT_LOCAL = 'GOVERNMENT_LOCAL',

  // Security categories
  SECURITY_AGENCY = 'SECURITY_AGENCY',
  LAW_ENFORCEMENT = 'LAW_ENFORCEMENT',

  // Financial categories
  FINANCIAL_INSTITUTION = 'FINANCIAL_INSTITUTION',
  INSURANCE = 'INSURANCE',
  BANKING = 'BANKING',

  // Public service categories
  PUBLIC_SERVICE = 'PUBLIC_SERVICE',
  UTILITIES = 'UTILITIES',
  TRANSPORTATION = 'TRANSPORTATION',

  // Education categories
  EDUCATION_UNIVERSITY = 'EDUCATION_UNIVERSITY',
  EDUCATION_SCHOOL = 'EDUCATION_SCHOOL',
  EDUCATION_RESOURCE = 'EDUCATION_RESOURCE',

  // Healthcare categories
  HEALTHCARE_HOSPITAL = 'HEALTHCARE_HOSPITAL',
  HEALTHCARE_CLINIC = 'HEALTHCARE_CLINIC',
  HEALTHCARE_RESEARCH = 'HEALTHCARE_RESEARCH',

  // Business categories
  BUSINESS_ENTERPRISE = 'BUSINESS_ENTERPRISE',
  BUSINESS_SME = 'BUSINESS_SME',
  ECOMMERCE = 'ECOMMERCE',

  // Miscellaneous categories
  INFRASTRUCTURE = 'INFRASTRUCTURE',
  MEDIA = 'MEDIA',
  NON_PROFIT = 'NON_PROFIT',
  TECHNOLOGY = 'TECHNOLOGY',

  // Default category
  OTHER = 'OTHER',
}

/**
 * Operational status of a website
 */
export enum OperationalStatus {
  ONLINE = 'ONLINE',
  DEGRADED = 'DEGRADED',
  OFFLINE = 'OFFLINE',
  COMPROMISED = 'COMPROMISED',
  MAINTENANCE = 'MAINTENANCE',
  UNKNOWN = 'UNKNOWN',
}

/**
 * Types of monitoring checks that can be performed
 */
export enum MonitoringCheckType {
  AVAILABILITY = 'AVAILABILITY',
  RESPONSE_TIME = 'RESPONSE_TIME',
  DEFACEMENT = 'DEFACEMENT',
  SSL_CERTIFICATE = 'SSL_CERTIFICATE',
  DNS_CHANGES = 'DNS_CHANGES',
  CONTENT_CHANGE = 'CONTENT_CHANGE',
  MALWARE_SCAN = 'MALWARE_SCAN',
  PHISHING_CHECK = 'PHISHING_CHECK',
  BROKEN_LINKS = 'BROKEN_LINKS',
  SEO_METRICS = 'SEO_METRICS',
  ACCESSIBILITY = 'ACCESSIBILITY',
  PERFORMANCE = 'PERFORMANCE',
}

/**
 * Status result for a check
 */
export enum CheckStatus {
  PASS = 'PASS',
  WARNING = 'WARNING',
  FAIL = 'FAIL',
  ERROR = 'ERROR',
}

/**
 * Alert severity levels
 */
export enum AlertSeverity {
  INFO = 'INFO',
  LOW = 'LOW',
  MEDIUM = 'MEDIUM',
  HIGH = 'HIGH',
  CRITICAL = 'CRITICAL',
  WARNING = 'WARNING',
}

/**
 * Incident status tracking
 */
export enum IncidentStatus {
  OPEN = 'OPEN',
  INVESTIGATING = 'INVESTIGATING',
  ACKNOWLEDGED = 'ACKNOWLEDGED',
  MITIGATING = 'MITIGATING',
  RESOLVED = 'RESOLVED',
  CLOSED = 'CLOSED',
}

/**
 * Contact types
 */
export enum ContactType {
  EMAIL = 'EMAIL',
  PHONE = 'PHONE',
  SMS = 'SMS',
  WEBHOOK = 'WEBHOOK',
  OTHER = 'OTHER',
}

export enum AlertThreshold {
  INFO = 'INFO',
  LOW = 'LOW',
  MEDIUM = 'MEDIUM',
  HIGH = 'HIGH',
  CRITICAL = 'CRITICAL',
}
