/**
 * Logger conditionnel pour la production
 * Remplace console.log/info/warn/error par des fonctions conditionnelles
 * En production, seuls les erreurs critiques sont loggées
 */

interface Logger {
  debug: (...args: unknown[]) => void;
  info: (...args: unknown[]) => void;
  warn: (...args: unknown[]) => void;
  error: (...args: unknown[]) => void;
}

const isDev = import.meta.env.DEV;
const isProd = import.meta.env.PROD;

/**
 * Logger conditionnel qui filtre les logs selon l'environnement
 */
export const logger: Logger = {
  debug: (...args: unknown[]) => {
    if (isDev) {
      console.debug('[DEBUG]', ...args);
    }
  },
  info: (...args: unknown[]) => {
    if (isDev) {
      console.info('[INFO]', ...args);
    }
  },
  warn: (...args: unknown[]) => {
    // Warnings toujours loggés, mais avec préfixe en prod
    if (isProd) {
      console.warn('[WARN]', ...args);
    } else {
      console.warn('[WARN]', ...args);
    }
  },
  error: (...args: unknown[]) => {
    // Erreurs toujours loggées en production pour le debugging
    console.error('[ERROR]', ...args);
  },
};

/**
 * Export par défaut pour faciliter l'import
 */
export default logger;
