/* ===== Partner Management ===== */ let partners = []; let partnerWorkers = []; let selectedPartnerId = null; let editingWorkerId = null; async function loadPartners() { try { const isActive = document.getElementById('partnerFilterActive')?.value; const search = document.getElementById('partnerSearch')?.value?.trim() || ''; const params = new URLSearchParams(); if (isActive !== '' && isActive !== undefined) params.set('is_active', isActive); if (search) params.set('search', search); const r = await api('/partners/?' + params.toString()); partners = r.data || []; renderPartnerList(); } catch (e) { showToast('업체 목록 로드 실패: ' + e.message, 'error'); } } function renderPartnerList() { const c = document.getElementById('partnerList'); if (!partners.length) { c.innerHTML = '