Source: config/index.js

/**
 * BFAPI Configuration
 * 
 * Centralized configuration management for BFAPI
 */

export const config = {
  // Server configuration
  PORT: process.env.PORT || 3000,
  NODE_ENV: process.env.NODE_ENV || 'development',
  
  // API rate limiting
  RATE_LIMIT: {
    WINDOW_MS: 15 * 60 * 1000, // 15 minutes
    MAX_REQUESTS: 100,
  },
  
  // JWT configuration
  JWT: {
    SECRET: process.env.JWT_SECRET || 'development-secret-key',
    EXPIRES_IN: process.env.JWT_EXPIRES_IN || '1d',
  },
  
  // Logging
  LOG_LEVEL: process.env.LOG_LEVEL || 'info',
  
  // CORS
  CORS_ORIGINS: process.env.CORS_ORIGINS ? process.env.CORS_ORIGINS.split(',') : ['*'],
  
  // BFMODEL integration
  MODEL_API: {
    URL: process.env.MODEL_API_URL || 'http://localhost:5000',
    KEY: process.env.MODEL_API_KEY || 'development-key',
    TIMEOUT: parseInt(process.env.MODEL_API_TIMEOUT || '30000', 10),
  },
  
  // Feature flags
  FEATURES: {
    AI_SUGGESTIONS: process.env.FEATURE_AI_SUGGESTIONS === 'true',
    ADVANCED_ANALYTICS: process.env.FEATURE_ADVANCED_ANALYTICS === 'true',
    MODEL_TRAINING: process.env.FEATURE_MODEL_TRAINING === 'true',
  },
  
  // Cache configuration
  CACHE: {
    TTL: parseInt(process.env.CACHE_TTL || '300', 10), // 5 minutes in seconds
    MAX_SIZE: parseInt(process.env.CACHE_MAX_SIZE || '100', 10), // Max items in cache
  },
};

export default config;