import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

const __dirname = path.dirname(fileURLToPath(import.meta.url));

function slugify(text) {
    return text.toString().toLowerCase()
        .replace(/ç/g, 'c')
        .replace(/ğ/g, 'g')
        .replace(/ı/g, 'i')
        .replace(/ö/g, 'o')
        .replace(/ş/g, 's')
        .replace(/ü/g, 'u')
        // URL decode first just in case
        .replace(/%20/g, ' ')
        .replace(/%c3%b6/g, 'o') // ö
        .replace(/%c3%bc/g, 'u') // ü
        .replace(/%c3%a7/g, 'c') // ç
        .replace(/%c4%b1/g, 'i') // ı
        .replace(/%c5%9f/g, 's') // ş
        .replace(/%c4%9f/g, 'g') // ğ
        .replace(/[^a-z0-9.]/g, '-')
        .replace(/\-\-+/g, '-')
        .replace(/^-+/, '')
        .replace(/-+$/, '');
}

function processPath(urlPath) {
    // decode url first
    let decoded = decodeURIComponent(urlPath);
    // split by /
    const parts = decoded.split('/');
    const newParts = parts.map((part, index) => {
        // don't slugify empty parts or fixed prefixes
        if (!part) return part;
        if (part === 'images' || part === 'https:' || part === '' || part === 'media.ayris.tech' || part === 'upload' || part === 'aydogan') return part;
        
        let newName = slugify(path.parse(part).name);
        const ext = path.extname(part).toLowerCase();
        if (ext) {
             newName += ext;
        }
        return newName;
    });
    return newParts.join('/');
}

const filesToProcess = [
    path.resolve(__dirname, '../lib/data.ts'),
    path.resolve(__dirname, '../lib/gallery_data.ts'),
    path.resolve(__dirname, '../components/Hero.tsx'),
    path.resolve(__dirname, '../components/ServicesPreview.tsx')
];

for (const file of filesToProcess) {
    if (!fs.existsSync(file)) continue;
    let content = fs.readFileSync(file, 'utf8');
    
    // Replace "/images/..."
    content = content.replace(/"(\/images\/[^"]+)"/g, (match, p1) => {
        return `"${processPath(p1)}"`;
    });

    // Replace "https://media.ayris.tech/upload/aydogan/..."
    content = content.replace(/"(https:\/\/media\.ayris\.tech\/upload\/aydogan\/[^"]+)"/g, (match, p1) => {
        return `"${processPath(p1)}"`;
    });

    fs.writeFileSync(file, content);
    console.log(`Updated ${file}`);
}
