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

const templatesDirs = [
    'd:\\gdfhbfgdbnbdfbdf\\typogenie\\src-tauri\\target\\debug\\templates',
    'd:\\gdfhbfgdbnbdfbdf\\typogenie\\src-tauri\\target\\release\\templates'
];

const ids = new Map(); // id -> filename

function scanDir(dir) {
    if (!fs.existsSync(dir)) {
        console.log(`Directory not found: ${dir}`);
        return;
    }
    console.log(`Scanning: ${dir}`);
    const files = fs.readdirSync(dir, { withFileTypes: true });

    files.forEach(dirent => {
        const fullPath = path.join(dir, dirent.name);
        if (dirent.isDirectory()) {
            scanDir(fullPath);
        } else if (dirent.name.endsWith('.json')) {
            try {
                const content = fs.readFileSync(fullPath, 'utf8');
                const json = JSON.parse(content);
                // Handle array or object
                const template = Array.isArray(json) ? json[0] : json;

                if (template.id) {
                    if (ids.has(template.id)) {
                        console.error(`[DUPLICATE ID] ${template.id} found in ${dirent.name} AND ${ids.get(template.id)}`);
                    } else {
                        ids.set(template.id, dirent.name);
                        console.log(`[OK] ${dirent.name} (ID: ${template.id})`);
                    }
                } else {
                    console.error(`[MISSING ID] ${dirent.name}`);
                }
            } catch (e) {
                console.error(`[FAIL] ${dirent.name}: ${e.message}`);
            }
        }
    });
}

// Only scan one directory (debug) to check for uniqueness within the app load
scanDir('d:\\gdfhbfgdbnbdfbdf\\typogenie\\src-tauri\\target\\debug\\templates');
