/**
 * Configuration de production pour MediFlash SOS+
 * Gestion de l'environnement de production avec PaiementPRO
 */

export const PRODUCTION_CONFIG = {
  // Configuration PaiementPRO
  PAYMENT: {
    MERCHANT_ID: 'PP-F2187',
    API_BASE_URL: 'https://www.paiementpro.net',
    WSDL_URL: 'https://www.paiementpro.net/webservice/OnlineServicePayment_v2.php?wsdl',
    CURRENCY_CODE: '952', // Franc CFA (XOF)
    TIMEOUT: 30000, // 30 secondes
    SUPPORTED_CHANNELS: [
      'OMCIV2', // Orange Money
      'MOMO',   // MTN Mobile Money
      'FLOOZ',  // Moov Money
      'CARD'    // Carte bancaire
    ]
  },

  // Configuration des URLs de callback
  CALLBACKS: {
    getNotificationUrl: (domain: string) => `https://${domain}/api/payments/notification`,
    getReturnUrl: (domain: string) => `https://${domain}/payment/return`,
    getBaseUrl: (domain: string) => `https://${domain}`
  },

  // Configuration de sécurité
  SECURITY: {
    HASH_ALGORITHM: 'sha256',
    SESSION_TIMEOUT: 900, // 15 minutes
    MAX_RETRY_ATTEMPTS: 3
  },

  // Configuration des logs en production
  LOGGING: {
    LEVEL: 'info',
    HIDE_SENSITIVE_DATA: true,
    LOG_PAYMENTS: true,
    LOG_SOAP_REQUESTS: false // Désactivé en production pour la sécurité
  }
};

/**
 * Validation de la configuration production
 */
export function validateProductionConfig(): boolean {
  const requiredEnvVars = [
    'PAIEMENTPRO_SECRET_KEY',
    'REPLIT_DOMAINS'
  ];

  for (const envVar of requiredEnvVars) {
    if (!process.env[envVar]) {
      console.error(`Missing required environment variable: ${envVar}`);
      return false;
    }
  }

  return true;
}

/**
 * Obtient la configuration basée sur l'environnement
 */
export function getEnvironmentConfig() {
  const isProduction = process.env.NODE_ENV === 'production';
  
  return {
    ...PRODUCTION_CONFIG,
    IS_PRODUCTION: isProduction,
    USE_REAL_SOAP_API: isProduction,
    LOG_LEVEL: isProduction ? 'error' : 'debug'
  };
}