/**
 * Script de nettoyage pour supprimer les fichiers obsolètes après refactoring
 * 
 * Usage:
 * - Pour lister les fichiers obsolètes sans les supprimer : node cleanup.js list
 * - Pour supprimer les fichiers obsolètes : node cleanup.js delete
 */

const fs = require('fs');
const path = require('path');

// Liste des fichiers à considérer comme obsolètes
const deprecatedFiles = [
  // Anciens fichiers de routes qui ont été remplacés par src/routes/*
  'routes/uploadRoutes.js',
  'routes/projectRoutes.js',
  'routes/measurementRoutes.js',
  'routes/videoRoutes.js',
  'routes/capture_system.js',
  'routes/imageRoutes.js',
  
  // Utilitaires remplacés
  'utils/serverError.js',
  
  // Fichiers de backend qui ont été refactorisés
  'ffmpeg.js',
];

// Fonction pour lister les fichiers obsolètes
function listDeprecatedFiles() {
  console.log('====== Fichiers obsolètes ======');
  deprecatedFiles.forEach(file => {
    const filePath = path.join(__dirname, file);
    if (fs.existsSync(filePath)) {
      console.log(`✓ ${file} (existe)`);
    } else {
      console.log(`✗ ${file} (déjà supprimé)`);
    }
  });
  console.log('==============================');
}

// Fonction pour supprimer les fichiers obsolètes
function deleteDeprecatedFiles() {
  console.log('====== Suppression des fichiers obsolètes ======');
  deprecatedFiles.forEach(file => {
    const filePath = path.join(__dirname, file);
    if (fs.existsSync(filePath)) {
      try {
        fs.unlinkSync(filePath);
        console.log(`✅ ${file} supprimé avec succès`);
      } catch (error) {
        console.error(`❌ Erreur lors de la suppression de ${file}:`, error.message);
      }
    } else {
      console.log(`⚠️ ${file} n'existe pas ou a déjà été supprimé`);
    }
  });
  console.log('==============================================');
}

// Traitement des arguments
const action = process.argv[2];

if (action === 'list') {
  listDeprecatedFiles();
} else if (action === 'delete') {
  listDeprecatedFiles();
  console.log('\nConfirmation de suppression...');
  deleteDeprecatedFiles();
} else {
  console.log(`
Usage:
  - Pour lister les fichiers obsolètes : node cleanup.js list
  - Pour supprimer les fichiers obsolètes : node cleanup.js delete
  `);
}