(function() {
    function getCSRFToken() {
        var meta = document.querySelector('meta[name="csrf-token"]');
        return meta ? meta.getAttribute('content') : '';
    }

    function api(url, method, body) {
        return fetch(url, {
            method: method,
            headers: {
                'Content-Type': 'application/json',
                'X-CSRF-Token': getCSRFToken()
            },
            body: body ? JSON.stringify(body) : undefined
        }).then(function(r) { return r.json(); });
    }

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

    function handleClick(sel, actionFn) {
        var btns = document.querySelectorAll(sel);
        btns.forEach(function(btn) {
            btn.addEventListener('click', function() {
                var id = btn.getAttribute('data-id');
                if (confirm('确定执行此操作吗？')) {
                    actionFn(id);
                }
            });
        });
    }

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

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

    // 锁定
    handleClick('.post-lock', function(id) {
        api('/api/admin/posts/' + id + '/lock', 'POST')
            .then(function(d) { if (d.success) refreshPage(); else alert(d.message); })
            .catch(function() { alert('操作失败'); });
    });

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