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

const imagesToConvert = [
  '2-body.png',
  '2-hero.png',
  'qr-code-analytics-hero.png',
  '1-hero.png'
];

const blogDir = path.join(__dirname, '../public/blog');

async function compressImages() {
  console.log('🖼️  Starting image compression...\n');
  
  for (const imageName of imagesToConvert) {
    const inputPath = path.join(blogDir, imageName);
    const outputName = imageName.replace('.png', '.webp');
    const outputPath = path.join(blogDir, outputName);
    
    if (!fs.existsSync(inputPath)) {
      console.log(`⚠️  Skipping ${imageName} - file not found`);
      continue;
    }
    
    const originalSize = fs.statSync(inputPath).size;
    
    try {
      await sharp(inputPath)
        .webp({ quality: 85 })
        .toFile(outputPath);
      
      const newSize = fs.statSync(outputPath).size;
      const savings = ((1 - newSize / originalSize) * 100).toFixed(1);
      
      console.log(`✅ ${imageName}`);
      console.log(`   Original: ${(originalSize / 1024 / 1024).toFixed(2)} MB`);
      console.log(`   WebP:     ${(newSize / 1024 / 1024).toFixed(2)} MB`);
      console.log(`   Savings:  ${savings}%\n`);
    } catch (err) {
      console.error(`❌ Failed to convert ${imageName}:`, err.message);
    }
  }
  
  console.log('Done! Remember to update image references in blog-data.ts');
}

compressImages();
