// region-tree.jsx — 전국 시도 → 시군구 법정동코드(LAWD_CD) 전체 트리
// 국토부 RTMS API 는 시군구 5자리 코드로 조회. 결과의 umdNm 으로 읍면동까지 그룹.

const LAWD_TREE = {
  '서울특별시': [
    ['종로구', '11110'], ['중구', '11140'], ['용산구', '11170'], ['성동구', '11200'],
    ['광진구', '11215'], ['동대문구', '11230'], ['중랑구', '11260'], ['성북구', '11290'],
    ['강북구', '11305'], ['도봉구', '11320'], ['노원구', '11350'], ['은평구', '11380'],
    ['서대문구', '11410'], ['마포구', '11440'], ['양천구', '11470'], ['강서구', '11500'],
    ['구로구', '11530'], ['금천구', '11545'], ['영등포구', '11560'], ['동작구', '11590'],
    ['관악구', '11620'], ['서초구', '11650'], ['강남구', '11680'], ['송파구', '11710'], ['강동구', '11740'],
  ],
  '경기도': [
    ['수원시 장안구', '41111'], ['수원시 권선구', '41113'], ['수원시 팔달구', '41115'], ['수원시 영통구', '41117'],
    ['성남시 수정구', '41131'], ['성남시 중원구', '41133'], ['성남시 분당구', '41135'],
    ['의정부시', '41150'], ['안양시 만안구', '41171'], ['안양시 동안구', '41173'],
    ['부천시 원미구', '41192'], ['부천시 소사구', '41194'], ['부천시 오정구', '41196'],
    ['광명시', '41210'], ['평택시', '41220'], ['동두천시', '41250'],
    ['안산시 상록구', '41271'], ['안산시 단원구', '41273'],
    ['고양시 덕양구', '41281'], ['고양시 일산동구', '41285'], ['고양시 일산서구', '41287'],
    ['과천시', '41290'], ['구리시', '41310'], ['남양주시', '41360'], ['오산시', '41370'],
    ['시흥시', '41390'], ['군포시', '41410'], ['의왕시', '41430'], ['하남시', '41450'],
    ['용인시 처인구', '41461'], ['용인시 기흥구', '41463'], ['용인시 수지구', '41465'],
    ['파주시', '41480'], ['이천시', '41500'], ['안성시', '41550'], ['김포시', '41570'],
    ['화성시', '41590'], ['광주시', '41610'], ['양주시', '41630'], ['포천시', '41650'],
    ['여주시', '41670'], ['연천군', '41800'], ['가평군', '41820'], ['양평군', '41830'],
  ],
  '인천광역시': [
    ['중구', '28110'], ['동구', '28140'], ['미추홀구', '28177'], ['연수구', '28185'],
    ['남동구', '28200'], ['부평구', '28237'], ['계양구', '28245'], ['서구', '28260'],
    ['강화군', '28710'], ['옹진군', '28720'],
  ],
  '부산광역시': [
    ['중구', '26110'], ['서구', '26140'], ['동구', '26170'], ['영도구', '26200'],
    ['부산진구', '26230'], ['동래구', '26260'], ['남구', '26290'], ['북구', '26320'],
    ['해운대구', '26350'], ['사하구', '26380'], ['금정구', '26410'], ['강서구', '26440'],
    ['연제구', '26470'], ['수영구', '26500'], ['사상구', '26530'], ['기장군', '26710'],
  ],
  '대구광역시': [
    ['중구', '27110'], ['동구', '27140'], ['서구', '27170'], ['남구', '27200'],
    ['북구', '27230'], ['수성구', '27260'], ['달서구', '27290'], ['달성군', '27710'], ['군위군', '27720'],
  ],
  '대전광역시': [
    ['동구', '30110'], ['중구', '30140'], ['서구', '30170'], ['유성구', '30200'], ['대덕구', '30230'],
  ],
  '광주광역시': [
    ['동구', '29110'], ['서구', '29140'], ['남구', '29155'], ['북구', '29170'], ['광산구', '29200'],
  ],
  '울산광역시': [
    ['중구', '31110'], ['남구', '31140'], ['동구', '31170'], ['북구', '31200'], ['울주군', '31710'],
  ],
  '세종특별자치시': [
    ['세종특별자치시', '36110'],
  ],
  '강원특별자치도': [
    ['춘천시', '51110'], ['원주시', '51130'], ['강릉시', '51150'], ['동해시', '51170'],
    ['태백시', '51190'], ['속초시', '51210'], ['삼척시', '51230'], ['홍천군', '51720'], ['평창군', '51760'],
  ],
  '충청북도': [
    ['청주시 상당구', '43111'], ['청주시 서원구', '43112'], ['청주시 흥덕구', '43113'], ['청주시 청원구', '43114'],
    ['충주시', '43130'], ['제천시', '43150'], ['음성군', '43770'], ['진천군', '43750'],
  ],
  '충청남도': [
    ['천안시 동남구', '44131'], ['천안시 서북구', '44133'], ['공주시', '44150'], ['보령시', '44180'],
    ['아산시', '44200'], ['서산시', '44210'], ['논산시', '44230'], ['당진시', '44270'], ['홍성군', '44800'],
  ],
  '전북특별자치도': [
    ['전주시 완산구', '52111'], ['전주시 덕진구', '52113'], ['군산시', '52130'], ['익산시', '52140'],
    ['정읍시', '52180'], ['남원시', '52190'], ['김제시', '52210'], ['완주군', '52710'],
  ],
  '전라남도': [
    ['목포시', '46110'], ['여수시', '46130'], ['순천시', '46150'], ['나주시', '46170'],
    ['광양시', '46230'], ['무안군', '46840'], ['해남군', '46820'],
  ],
  '경상북도': [
    ['포항시 남구', '47111'], ['포항시 북구', '47113'], ['경주시', '47130'], ['김천시', '47150'],
    ['안동시', '47170'], ['구미시', '47190'], ['영주시', '47210'], ['경산시', '47290'], ['칠곡군', '47850'],
  ],
  '경상남도': [
    ['창원시 의창구', '48121'], ['창원시 성산구', '48123'], ['창원시 마산합포구', '48125'],
    ['창원시 마산회원구', '48127'], ['창원시 진해구', '48129'], ['진주시', '48170'],
    ['통영시', '48220'], ['사천시', '48240'], ['김해시', '48250'], ['밀양시', '48270'],
    ['거제시', '48310'], ['양산시', '48330'], ['함안군', '48730'],
  ],
  '제주특별자치도': [
    ['제주시', '50110'], ['서귀포시', '50130'],
  ],
};

// ─── AI 인프라 투자 매력도 맵 ───────────────────────────────
// 반도체·데이터센터·AI 클러스터 인접 지역 가산. 키는 지역명 부분일치.
const AI_INFRA = [
  { match: ['용인'], score: 98, label: 'SK하이닉스 용인 반도체 클러스터 · 삼성 반도체', tags: ['반도체', 'HW', '클러스터'] },
  { match: ['평택'], score: 96, label: '삼성전자 평택 반도체 캠퍼스(P1~P6)', tags: ['반도체', 'HW', 'Fab'] },
  { match: ['화성'], score: 94, label: '삼성전자 화성 반도체 · 동탄 테크노밸리', tags: ['반도체', 'HW'] },
  { match: ['이천'], score: 92, label: 'SK하이닉스 이천 본사 · M16 Fab', tags: ['반도체', 'HW', 'Fab'] },
  { match: ['청주', '청원', '흥덕'], score: 88, label: 'SK하이닉스 청주 M15 · 낸드 메모리', tags: ['반도체', 'HW'] },
  { match: ['분당', '판교', '성남'], score: 95, label: '판교 테크노밸리 · 네이버/카카오 AI · 데이터센터 각', tags: ['AI', 'SW', '데이터센터'] },
  { match: ['세종'], score: 82, label: '정부 데이터센터 · 행정 AI 인프라', tags: ['데이터센터', '인프라'] },
  { match: ['구미'], score: 80, label: '구미 국가산단 · 반도체 소부장', tags: ['반도체', '소부장'] },
  { match: ['파주'], score: 78, label: 'LG디스플레이 파주 · 디스플레이 클러스터', tags: ['디스플레이', 'HW'] },
  { match: ['수원', '영통'], score: 90, label: '삼성전자 수원 본사 · 디바이스경험(DX)', tags: ['본사', 'R&D', 'AI'] },
  { match: ['기흥'], score: 91, label: '삼성전자 기흥 반도체 · R&D 단지', tags: ['반도체', 'R&D'] },
  { match: ['강남', '서초'], score: 86, label: 'AI 스타트업·테크 본사 밀집 · 테헤란밸리', tags: ['AI', 'SW', '스타트업'] },
  { match: ['포항'], score: 76, label: '포스텍 · 이차전지·소재 R&D', tags: ['소재', 'R&D'] },
  { match: ['천안', '아산'], score: 79, label: '삼성디스플레이 아산 · 디스플레이 클러스터', tags: ['디스플레이', 'HW'] },
  { match: ['창원', '성산'], score: 72, label: '창원 국가산단 · 방산·기계 AI 전환', tags: ['제조', '인프라'] },
];

function aiInfraFor(regionName) {
  for (const e of AI_INFRA) {
    if (e.match.some(m => regionName.includes(m))) return e;
  }
  return { score: 45, label: 'AI·반도체 핵심 인프라 인접도 보통', tags: ['일반'] };
}

// 시도 약칭 (검색 표시용)
const SIDO_SHORT = {
  '서울특별시': '서울', '경기도': '경기', '인천광역시': '인천', '부산광역시': '부산',
  '대구광역시': '대구', '대전광역시': '대전', '광주광역시': '광주', '울산광역시': '울산',
  '세종특별자치시': '세종', '강원특별자치도': '강원', '충청북도': '충북', '충청남도': '충남',
  '전북특별자치도': '전북', '전라남도': '전남', '경상북도': '경북', '경상남도': '경남',
  '제주특별자치도': '제주',
};

// 관심지역 이름(예: '강남구', '광교/수원', '용인 수지') → { lawd, name }
function LAWD_FROM_NAME(input) {
  if (!input) return null;
  const norm = (s) => (s || '').replace(/특별시|광역시|특별자치시|특별자치도|도$|시$/g, '').replace(/[\s·/]/g, '');
  const key = norm(input);
  for (const sido of Object.keys(LAWD_TREE)) {
    for (const [name, lawd] of LAWD_TREE[sido]) {
      const n = norm(name);
      if (n === key || key.includes(n) || n.includes(key)) return { lawd, name };
    }
  }
  // 별칭 보정
  const alias = { '광교': '41465', '수원': '41117', '분당': '41135', '판교': '41135', '용인수지': '41465', '송도': '28185', '둔산': '30170', '해운대': '26350' };
  for (const a of Object.keys(alias)) if (key.includes(a)) return { lawd: alias[a], name: input };
  return null;
}

Object.assign(window, { LAWD_TREE, AI_INFRA, aiInfraFor, SIDO_SHORT, LAWD_FROM_NAME });
