/**
 * melk-wizards.js — ویجت اقتصاد ملک
 */
;(function (global) {
    'use strict';
    const API = () => (global.ACC_CHAT_CFG?.api_base || '/acc-engine/api.php/acc/v1').replace(/\/$/, '');

    const ROUTES = [
        { key: 'listing_inquiry', icon: '🏠', title: 'استعلام ملک' },
        { key: 'construction', icon: '🔨', title: 'ساخت‌وساز / مشارکت' },
        { key: 'case_help', icon: '📋', title: 'پرونده همکاری' },
        { key: 'legal_consult', icon: '⚖️', title: 'مشاوره حقوقی' },
    ];

    const FIELDS = {
        _default: [
            { key: 'name', label: 'نام *', type: 'text', required: true },
            { key: 'phone', label: 'موبایل *', type: 'tel', required: true, dir: 'ltr' },
            { key: 'site_label', label: 'موضع / کد نوسازی', type: 'text' },
            { key: 'complaint_text', label: 'شرح درخواست *', type: 'textarea', required: true },
        ],
    };

    function esc(s) { return String(s ?? '').replace(/&/g,'&amp;').replace(/</g,'&lt;'); }
    function fieldHtml(f) {
        const id = `cw-w-${f.key}`;
        const req = f.required ? ' required' : '';
        if (f.type === 'textarea') return `<label class="cw-wiz-lbl">${esc(f.label)}</label><textarea class="cw-visitor-input" id="${id}" data-key="${f.key}" rows="3"${req}></textarea>`;
        return `<label class="cw-wiz-lbl">${esc(f.label)}</label><input class="cw-visitor-input" id="${id}" data-key="${f.key}" type="${f.type || 'text'}"${req}>`;
    }
    async function fetchFields() { return FIELDS._default; }
    function collectPayload(root, serviceType) {
        const payload = { service_type: serviceType, source_portal: 'melk' };
        root.querySelectorAll('[data-key]').forEach(el => { payload[el.dataset.key] = el.value?.trim?.() ?? el.value; });
        return payload;
    }

    global.SvcWizards = {
        ROUTES, fetchFields, fieldHtml, collectPayload,
        async renderWizard(container, serviceType, serviceTitle, serviceIcon, onBack, onSubmit) {
            const fields = await fetchFields(serviceType);
            container.innerHTML = `
                <button class="cw-back-btn" id="cw-wiz-back">◀ بازگشت</button>
                <div class="cw-section-title">${serviceIcon || '🏛️'} ${esc(serviceTitle)}</div>
                <div id="cw-wiz-fields">${fields.map(fieldHtml).join('')}</div>
                <button class="cw-start-btn" id="cw-w-submit">✅ ارسال</button>`;
            container.querySelector('#cw-wiz-back')?.addEventListener('click', onBack);
            container.querySelector('#cw-w-submit')?.addEventListener('click', () => onSubmit(collectPayload(container, serviceType)));
        },
    };
})(typeof window !== 'undefined' ? window : globalThis);
