/**
 * Main script to clean up the codebase by finding deprecated imports and files
 * Run with: node scripts/cleanup-codebase.js
 */

const { execSync } = require('child_process');
const path = require('path');

// Print a separator for readability
function printSeparator() {
  console.log('\n' + '='.repeat(80) + '\n');
}

// Run a script and print its output
function runScript(scriptPath) {
  try {
    console.log(`Running ${path.basename(scriptPath)}...\n`);
    const output = execSync(`node ${scriptPath}`, { encoding: 'utf8' });
    console.log(output);
  } catch (error) {
    console.error(`Error running ${scriptPath}:`, error.message);
    console.error(error.stdout);
  }
}

// Main function to run all cleanup scripts
function main() {
  console.log(`
✨ Ember Market Frontend Cleanup Utility ✨

This script will help you clean up your codebase by:
1. Finding deprecated imports that should be updated
2. Identifying files that can be safely removed
3. Organizing the lib folder into a proper structure

`);

  // First, find deprecated imports
  printSeparator();
  console.log('STEP 1: FINDING DEPRECATED IMPORTS');
  printSeparator();
  runScript(path.join(__dirname, 'find-deprecated-imports.js'));

  // Then, identify files that can be removed
  printSeparator();
  console.log('STEP 2: IDENTIFYING DEPRECATED FILES');
  printSeparator();
  runScript(path.join(__dirname, 'cleanup-deprecated-files.js'));
  
  // Finally, organize the lib folder
  printSeparator();
  console.log('STEP 3: ORGANIZING LIB FOLDER');
  printSeparator();
  runScript(path.join(__dirname, 'organize-lib-folder.js'));

  // Final instructions
  printSeparator();
  console.log(`
NEXT STEPS:

1. Review the lib directory to ensure files are properly organized
2. Verify that existing code still imports everything correctly
3. Run tests to ensure everything still works correctly

The new structure is:
- lib/api.ts - Main API entry point that exports all API functions
- lib/utils/ - Contains utility functions organized by purpose
- lib/types/ - Contains TypeScript type definitions
- lib/services/ - Contains service implementations

For ongoing maintenance:
- Always import from @/lib/api for API functionality
- Use @/lib/utils for utility functions
- Add new types to the appropriate types file
- Add new services to the services directory
`);
}

// Run the main function
main(); 