const fs = require('fs');
const file = 'c:/Users/kde/Desktop/wassili_V2/routes/admin.js';
let content = fs.readFileSync(file, 'utf8');

const replacements = [
    {
        // 1. Debt limits
        find: "if ((mode === 'partial' || mode === 'add') && (!amount || amount <= 0)) {\n            return res.status(400).json({ message: 'يرجى إدخال مبلغ صحيح أكبر من صفر' });\n        }",
        replace: "if ((mode === 'partial' || mode === 'add') && (!amount || amount <= 0)) {\n            return res.status(400).json({ message: 'يرجى إدخال مبلغ صحيح أكبر من صفر' });\n        }\n        if (amount > 1000000) {\n            return res.status(400).json({ message: 'المبلغ المدخل مبالغ فيه (الحد الأقصى مليون)' });\n        }"
    },
    {
        // 2. Settings limits
        find: "const updates = { updatedBy: req.user._id };\n        for (const field of allowedFields) {\n            // Accept empty string for string fields but skip undefined\n            if (req.body[field] !== undefined) {\n                updates[field] = req.body[field];\n            }\n        }",
        replace: "const updates = { updatedBy: req.user._id };\n        for (const field of allowedFields) {\n            if (req.body[field] !== undefined) {\n                updates[field] = req.body[field];\n            }\n        }\n\n        const numericFields = ['baseFare', 'costPerKm', 'costPerMinute', 'commissionRate', 'defaultCreditLimit'];\n        for (const field of numericFields) {\n            if (updates[field] !== undefined) {\n                const val = parseFloat(updates[field]);\n                if (isNaN(val) || val < 0) return res.status(400).json({ message: `القيمة المدخلة في ${field} غير صالحة` });\n                if (field !== 'commissionRate' && val > 1000000) return res.status(400).json({ message: `القيمة المدخلة في ${field} مبالغ فيها` });\n                if (field === 'commissionRate' && val > 1) return res.status(400).json({ message: `نسبة العمولة يجب أن تكون بين 0 و 1` });\n            }\n        }"
    }
];

let replacedCount = 0;
for (const r of replacements) {
    if (content.includes(r.find)) {
        content = content.replace(r.find, r.replace);
        replacedCount++;
    } else {
        console.log("NOT FOUND:", r.find.substring(0, 50));
    }
}

fs.writeFileSync(file, content);
console.log(`Fixed admin.js successfully. (${replacedCount} replacements)`);
