import { state } from '../core/state';
import { renderPcList } from './List/PcListView';
import { renderServerList } from './List/ServerListView';
import { renderStorageList } from './List/StorageListView';
import { renderEquipmentList } from './List/EquipmentListView';
import { renderMobileList } from './List/MobileListView';
import { renderSwList } from './List/SwListView';
import { renderCloudList } from './List/CloudListView';
import { renderDomainList } from './List/DomainListView';
import { renderNetworkList } from './List/NetworkListView';
import { renderPcPartList } from './List/PcPartListView';
import { renderSpaceInfoList } from './List/SpaceInfoListView';
import { renderGiftList } from './List/GiftListView';
import { renderFacilityList } from './List/FacilityListView';
import { renderCostList } from './List/CostListView';
import { renderUserList } from './List/UserListView';
import { createIcons, Plus, X, LayoutDashboard, Monitor, Server, Database, Laptop, CalendarClock, Key, Cpu, Layers, Users, Paperclip, Edit2, RefreshCcw } from 'lucide';

/**
 * 자산 목록 테이블 렌더링 통합 허브
 */
export function renderSWTable(mainContent: HTMLElement) {
  if (!mainContent) return;
  console.log(`📂 Rendering Table for: ${state.activeCategory} / ${state.activeSubTab}`);
  
  mainContent.innerHTML = ''; 
  const container = document.createElement('div');
  container.className = 'view-container'; 

  try {
    const tab = state.activeSubTab;

    if (state.activeCategory === 'hw') {
      if (tab === 'PC') renderPcList(container);
      else if (tab === '서버') renderServerList(container);
      else if (tab === '스토리지') renderStorageList(container);
      else if (tab === '업무지원장비') renderEquipmentList(container);
      else if (tab === '네트워크') renderNetworkList(container);
      else if (tab === 'PC부품') renderPcPartList(container);
      else if (tab === '공간정보장비') renderSpaceInfoList(container);
      else {
        container.innerHTML = `<div style="padding:2rem; color:var(--text-muted);">"${tab}" 탭에 대한 하드웨어 리스트 뷰가 정의되지 않았습니다.</div>`;
      }
    } else if (state.activeCategory === 'sw') {
      if (tab === '외부' || tab === '내부') {
        renderSwList(container);
      } else {
        container.innerHTML = `<div style="padding:2rem; color:var(--text-muted);">"${tab}" 탭에 대한 소프트웨어 리스트 뷰가 정의되지 않았습니다.</div>`;
      }
    } else if (state.activeCategory === 'ops') {
      if (tab === '도메인') renderDomainList(container);
      else if (tab === '클라우드') renderCloudList(container);
      else if (tab === '비용관리') renderCostList(container);
      else {
        container.innerHTML = `<div style="padding:2rem; color:var(--text-muted);">"${tab}" 탭에 대한 운영지원 리스트 뷰가 정의되지 않았습니다.</div>`;
      }
    } else if (state.activeCategory === 'vip') {
      if (tab === '선물') renderGiftList(container);
      else {
        container.innerHTML = `<div style="padding:2rem; color:var(--text-muted); text-align:center; margin-top:3rem;">내빈/외빈(${tab}) 관리 기능은 현재 준비 중입니다.</div>`;
      }
    } else if (state.activeCategory === 'fac') {
      if (tab === '사무가구') renderFacilityList(container);
      else {
        container.innerHTML = `<div style="padding:2rem; color:var(--text-muted); text-align:center; margin-top:3rem;">시설자산(${tab}) 관리 기능은 현재 준비 중입니다.</div>`;
      }
    }

    mainContent.appendChild(container);
    
    // 전역 아이콘 초기화 (한 번 더 실행하여 누락 방지)
    createIcons({
      icons: { Plus, X, LayoutDashboard, Monitor, Server, Database, Laptop, CalendarClock, Key, Cpu, Layers, Users, Paperclip, Edit2, RefreshCcw }
    });
  } catch (err: any) {
    console.error('❌ Error rendering table view:', err);
    mainContent.innerHTML = `<div style="padding:2rem; color:var(--danger);">목록을 불러오는 중 오류가 발생했습니다: ${err?.message || err}</div>`;
  }
}
