(function() {
    // CSRF token 由 shared/utils.js 的 getCSRFToken() 统一提供
    // showConfirm / showPrompt / escapeHtml 由 shared/utils.js 统一提供
    // api 对象 (api.get/api.post/api.put) 由 admin/common.js 统一提供

    function refreshPage() { window.location.reload(); }

    function handleClick(sel, confirmMsg, actionFn) {
        var btns = document.querySelectorAll(sel);
        btns.forEach(function(btn) {
            btn.addEventListener('click', async function() {
                var id = btn.getAttribute('data-id');
                if (confirmMsg) {
                    var ok = await showConfirm('确认', confirmMsg);
                    if (!ok) return;
                }
                actionFn(id);
            });
        });
    }

    // 审核通过
    handleClick('.post-approve', '确定审核通过此文章吗？', function(id) {
        api.post('/api/admin/posts/' + id + '/approve')
            .then(function(d) { if (d.success) refreshPage(); else alert(d.message); })
            .catch(function() { alert('操作失败'); });
    });

    // 退回
    handleClick('.post-reject', null, function(id) {
        showPrompt('请输入退回理由（必填）：').then(function(reason) {
            if (!reason || !reason.trim()) return;
            api.post('/api/admin/posts/' + id + '/reject', { reason: reason.trim() })
                .then(function(d) { if (d.success) refreshPage(); else alert(d.message); })
                .catch(function() { alert('操作失败'); });
        });
    });

    // 锁定
    handleClick('.post-lock', null, function(id) {
        showPrompt('请输入锁定理由（必填）：').then(function(reason) {
            if (!reason || !reason.trim()) return;
            api.post('/api/admin/posts/' + id + '/lock', { reason: reason.trim() })
                .then(function(d) { if (d.success) refreshPage(); else alert(d.message); })
                .catch(function() { alert('操作失败'); });
        });
    });

    // 解锁
    handleClick('.post-unlock', '确定解锁此文章吗？', function(id) {
        api.post('/api/admin/posts/' + id + '/unlock')
            .then(function(d) { if (d.success) refreshPage(); else alert(d.message); })
            .catch(function() { alert('操作失败'); });
    });
})();
