export const HEALTHKIT_CONFIG = {
  // Default configurations
  DEFAULT_DAYS: 7,
  MOCK_DELAY: 1000,
  AUTHORIZATION_CHANCE: 0.9,
  
  // Cache
  CACHE_TTL: 300000, // 5 minutos
  CACHE_MAX_SIZE: 100,
  CACHE_ENABLED: true,
  
  // Performance
  MAX_RETRIES: 3,
  RETRY_DELAY: 1000,
  QUERY_TIMEOUT: 30000, // 30 segundos
  
  // Metrics
  METRICS_ENABLED: true,
  METRICS_RETENTION: 24 * 60 * 60 * 1000, // 24 horas
  
  // Logging
  LOGGING_ENABLED: true,
  LOG_LEVEL: 'info' as 'debug' | 'info' | 'warn' | 'error',
  
  // Categories
  CATEGORIES: {
    ACTIVITY: 'activity',
    HEART: 'heart',
    BODY: 'body',
    NUTRITION: 'nutrition',
    SLEEP: 'sleep',
    MINDFULNESS: 'mindfulness',
    WORKOUT: 'workout',
    HEARING: 'hearing'
  } as const,
  
  // Default data types
  DEFAULT_TYPES: {
    QUANTITY: [
      'stepCount',
      'distanceWalkingRunning',
      'activeEnergyBurned',
      'heartRate',
      'bodyMass',
      'height',
      'bloodPressureSystolic',
      'bloodPressureDiastolic',
      'bloodGlucose',
      'oxygenSaturation'
    ],
    CATEGORY: [
      'sleepAnalysis',
      'mindfulSession',
      'workoutType'
    ],
    SPECIAL: [
      'workout',
      'audiogram',
      'electrocardiogram'
    ]
  },
  
  // Default units
  DEFAULT_UNITS: {
    stepCount: 'count',
    distanceWalkingRunning: 'm',
    activeEnergyBurned: 'kcal',
    heartRate: 'count/min',
    bodyMass: 'kg',
    height: 'm',
    bloodPressureSystolic: 'mmHg',
    bloodPressureDiastolic: 'mmHg',
    bloodGlucose: 'mg/dL',
    oxygenSaturation: '%',
    flightsClimbed: 'count',
    appleExerciseTime: 'min'
  },
  
  // Validations
  VALIDATION: {
    MAX_DAYS: 365,
    MIN_DAYS: 1,
    MAX_DATE_RANGE: 365 * 24 * 60 * 60 * 1000, // 1 ano
    MIN_DATE_RANGE: 60 * 1000, // 1 minuto
    MAX_IDENTIFIER_LENGTH: 100,
    MAX_BATCH_SIZE: 50
  },
  
  // Erros
  ERROR_CODES: {
    UNAUTHORIZED: 'HEALTHKIT_UNAUTHORIZED',
    NOT_AVAILABLE: 'HEALTHKIT_NOT_AVAILABLE',
    INVALID_PARAMETER: 'HEALTHKIT_INVALID_PARAMETER',
    QUERY_FAILED: 'HEALTHKIT_QUERY_FAILED',
    TIMEOUT: 'HEALTHKIT_TIMEOUT',
    NETWORK_ERROR: 'HEALTHKIT_NETWORK_ERROR',
    UNKNOWN_ERROR: 'HEALTHKIT_UNKNOWN_ERROR'
  },
  
  // Error messages
  ERROR_MESSAGES: {
    UNAUTHORIZED: 'Access to HealthKit not authorized',
    NOT_AVAILABLE: 'HealthKit is not available on this platform',
    INVALID_PARAMETER: 'Invalid parameter provided',
    QUERY_FAILED: 'Failed to execute query on HealthKit',
    TIMEOUT: 'Timeout executing operation',
    NETWORK_ERROR: 'Network error accessing HealthKit',
    UNKNOWN_ERROR: 'Unknown error occurred'
  }
} as const;

export type HealthKitConfig = typeof HEALTHKIT_CONFIG;
export type HealthKitCategory = typeof HEALTHKIT_CONFIG.CATEGORIES[keyof typeof HEALTHKIT_CONFIG.CATEGORIES];
export type HealthKitErrorCode = typeof HEALTHKIT_CONFIG.ERROR_CODES[keyof typeof HEALTHKIT_CONFIG.ERROR_CODES]; 