# scripts/seed_motie_chart.py
from app.web.deps import sb

# (부서명, 레벨, 대표 직위)
_MOTIE_ORDER_POS = [
    ("장관실",0,"장관"),
    ("대변인",1,"대변인"),
    ("홍보담당관",2,"과장"),
    ("홍보지원팀",2,"팀장"),
    ("감사관",1,"감사관"),
    ("감사담당관",2,"과장"),
    ("제1차관",0,"1차관"),
    ("운영지원과",1,"과장"),
    ("기획조정실",1,"실장"),
      ("정책기획관",2,"국장"),
        ("기획재정담당관",3,"과장"),
        ("혁신행정담당관",3,"과장"),
        ("규제개혁법무담당관",3,"과장"),
        ("정보관리담당관",3,"과장"),
        ("정보보호담당관",3,"과장"),
      ("비상안전기획관",2,"국장"),
        ("산업재난담당관",3,"과장"),
    ("산업정책실",1,"실장"),
      ("산업정책관",2,"국장"),
        ("산업정책과",3,"과장"),
        ("산업일자리혁신과",3,"과장"),
        ("산업환경과",3,"과장"),
        ("산업인공지능혁신과",3,"과장"),
        ("기업정책팀",3,"팀장"),
      ("산업공급망정책관",2,"국장"),
        ("산업공급망정책과",3,"과장"),
        ("소재부품장비개발과",3,"과장"),
        ("철강세라믹과",3,"과장"),
        ("화학산업팀",3,"팀장"),
      ("제조산업정책관",2,"국장"),
        ("기계로봇제조정책과",3,"과장"),
        ("자동차과",3,"과장"),
        ("조선해양플랜트과",3,"과장"),
        ("엔지니어링디자인과",3,"과장"),
        ("첨단민군혁신지원과",3,"과장"),
      ("첨단산업정책관",2,"국장"),
        ("반도체과",3,"과장"),
        ("배터리전기전자과",3,"과장"),
        ("바이오융합산업과",3,"과장"),
        ("섬유탄소나노과",3,"과장"),
        ("디스플레이가전팀",3,"팀장"),
    ("산업기반실",1,"실장"),
      ("산업기술융합정책관",2,"국장"),
        ("산업기술정책과",3,"과장"),
        ("산업기술개발과",3,"과장"),
        ("산업기술시장혁신과",3,"과장"),
        ("규제샌드박스팀",3,"팀장"),
      ("지역경제정책관",2,"국장"),
        ("지역경제총괄과",3,"과장"),
        ("지역경제진흥과",3,"과장"),
        ("입지총괄과",3,"과장"),
      ("중견기업정책관",2,"국장"),
        ("중견기업정책과",3,"과장"),
        ("중견기업지원과",3,"과장"),
        ("유통물류과",3,"과장"),
    ("제2차관",0,"2차관"),
    ("에너지정책실",1,"실장"),
      ("에너지정책관",2,"국장"),
        ("에너지정책과",3,"과장"),
        ("에너지효율과",3,"과장"),
        ("에너지기술과",3,"과장"),
      ("전력정책관",2,"국장"),
        ("전력산업정책과",3,"과장"),
        ("전력시장과",3,"과장"),
        ("신산업분산에너지과",3,"과장"),
        ("전력계통혁신과",3,"과장"),
      ("재생에너지정책관",2,"국장"),
        ("재생에너지정책과",3,"과장"),
        ("재생에너지산업과",3,"과장"),
        ("재생에너지보급과",3,"과장"),
      ("수소경제정책관",2,"국장"),
        ("수소경제정책과",3,"과장"),
        ("수소산업과",3,"과장"),
        ("에너지안전과",3,"과장"),
    ("자원산업정책국",1,"국장"),
      ("자원안보정책과",2,"과장"),
      ("석유산업과",2,"과장"),
      ("가스산업과",2,"과장"),
      ("석탄산업과",2,"과장"),
      ("광물자원팀",2,"팀장"),
    ("원전산업정책국",1,"국장"),
      ("원전산업정책과",2,"과장"),
      ("원전환경과",2,"과장"),
      ("원전지역협력과",2,"과장"),
    ("원전전략기획관",1,"국장"),
      ("원전수출진흥과",2,"과장"),
      ("원전수출협력과",2,"과장"),
    ("통상교섭본부장실",0,"통상교섭본부장"),
      ("통상차관보",1,"통상차관보"),
    ("통상정책국",1,"국장"),
      ("통상정책총괄과",2,"과장"),
      ("미주통상과",2,"과장"),
      ("구주통상과",2,"과장"),
      ("중남미대양주통상팀",2,"팀장"),
    ("신통상전략지원관",1,"국장"),
      ("신통상전략과",2,"과장"),
      ("디지털경제통상과",2,"과장"),
      ("기후에너지통상과",2,"과장"),
    ("통상협력국",1,"국장"),
      ("통상협력총괄과",2,"과장"),
      ("동북아통상과",2,"과장"),
      ("아주통상과",2,"과장"),
      ("중동아프리카통상과",2,"과장"),
    ("통상교섭실",1,"실장"),
      ("자유무역협정정책관",2,"국장"),
        ("자유무역협정정책기획과",3,"과장"),
        ("자유무역협정이행과",3,"과장"),
        ("통상협정활용과",3,"과장"),
        ("인도태평양통상기획팀",3,"팀장"),
      ("자유무역협정교섭관",2,"국장"),
        ("자유무역협정협상총괄과",3,"과장"),
        ("자유무역협정상품과",3,"과장"),
        ("자유무역협정서비스투자과",3,"과장"),
        ("자유무역협정무역규범과",3,"과장"),
      ("다자통상법무관",2,"국장"),
        ("통상법무기획과",3,"과장"),
        ("세계무역기구과",3,"과장"),
        ("다자통상협력과",3,"과장"),
        ("통상분쟁대응과",3,"과장"),
    ("무역투자실",1,"실장"),
      ("무역정책관",2,"국장"),
        ("무역정책과",3,"과장"),
        ("무역진흥과",3,"과장"),
        ("수출입과",3,"과장"),
      ("투자정책관",2,"국장"),
        ("투자정책과",3,"과장"),
        ("투자유치과",3,"과장"),
        ("해외투자과",3,"과장"),
      ("무역안보정책관",2,"국장"),
        ("무역안보정책과",3,"과장"),
        ("무역안보심사과",3,"과장"),
        ("기술안보과",3,"과장"),
    ("국가기술표준원",1,"원장"),
      ("원장실",2,"실장"),
      ("지원총괄과",2,"과장"),
      ("표준정책국",2,"국장"),
        ("표준정책과",3,"과장"),
        ("국제표준협력과",3,"과장"),
        ("산업표준혁신과",3,"과장"),
        ("전기전자정보표준과",3,"과장"),
        ("기계융합산업표준과",3,"과장"),
        ("바이오화학서비스표준과",3,"과장"),
        ("국제표준화기구전략대응팀",3,"팀장"),
      ("제품안전정책국",2,"국장"),
        ("제품안전정책과",3,"과장"),
        ("제품시장관리과",3,"과장"),
        ("제품안전정보과",3,"과장"),
        ("전기통신제품안전과",3,"과장"),
        ("생활어린이제품안전과",3,"과장"),
      ("적합성정책국",2,"국장"),
        ("시험인증정책과",3,"과장"),
        ("적합성평가과",3,"과장"),
        ("인증산업진흥과",3,"과장"),
        ("계량측정제도과",3,"과장"),
      ("기술규제대응국",2,"국장"),
        ("기술규제정책과",3,"과장"),
        ("무역기술장벽협상과",3,"과장"),
        ("기술규제조정과",3,"과장"),
        ("기술규제협력과",3,"과장"),
    ("무역위원회",1,"위원장"),
      ("상임위원",2,"상임위원"),
      ("무역조사실",2,"국장"),
        ("무역구제정책과",3,"과장"),
        ("산업피해조사과",3,"과장"),
        ("덤핑조사과",3,"과장"),
        ("덤핑조사지원과",3,"과장"),
        ("불공정무역조사과",3,"과장"),
        ("판정지원과",3,"과장"),
    ("광업등록사무소",1,"소장"),
      ("등록팀",2,"팀장"),
      ("심사팀",2,"팀장"),
    ("동부광산안전사무소",1,"소장"),
    ("중부광산안전사무소",1,"소장"),
    ("서부광산안전사무소",1,"소장"),
    ("남부광산안전사무소",1,"소장"),
    ("전기위원회",1,"위원장"),
      ("사무국",2,"사무국장"),
    ("경제자유구역기획단",1,"단장"),
      ("정책기획팀",2,"팀장"),
      ("혁신지원팀",2,"팀장"),
      ("서비스투자지원팀",2,"팀장"),
      ("개발투자지원팀",2,"팀장"),
    ("마산자유무역지역관리원",1,"원장"),
      ("관리과",2,"과장"),
      ("수출산업과",2,"과장"),
      ("투자홍보과",2,"과장"),
    ("군산자유무역지역관리원",1,"원장"),
      ("관리과",2,"과장"),
      ("수출산업과",2,"과장"),
      ("비상계획과",2,"과장"),
    ("대불자유무역지역관리원",1,"원장"),
      ("관리과",2,"과장"),
      ("수출산업과",2,"과장"),
    ("동해자유무역지역관리원",1,"원장"),
    ("율촌자유무역지역관리원",1,"원장"),
    ("김제자유무역지역관리원",1,"원장"),
      ("관리과",2,"과장"),
      ("수출산업과",2,"과장"),
    ("울산자유무역지역관리원",1,"원장"),
      ("관리과",2,"과장"),
      ("수출산업과",2,"과장"),
]

def seed_chart():
    print("[INFO] Clearing motie_org_chart...")
    # 전체 삭제
    sb.table("motie_org_chart").delete().neq("id", 0).execute()

    parent_map = {0: None}   # level별 부모 id 추적
    order_map = {}           # 레벨별 order_no 관리

    for dept, level, position in _MOTIE_ORDER_POS:
        parent_id = parent_map.get(level - 1)
        order_no = order_map.get(level, 0)

        # leader_id 매칭 시도
        leader_id = None
        res = (
            sb.table("motie_org")
            .select("id")
            .eq("department", dept)
            .ilike("position", f"%{position}%")
            .limit(1)
            .execute()
        )
        if res.data:
            leader_id = res.data[0]["id"]

        row = {
            "department": dept,
            "parent_id": parent_id,
            "order_no": order_no,
            "level": level,
            "leader_id": leader_id,
        }
        ins = sb.table("motie_org_chart").insert(row).execute()
        new_id = ins.data[0]["id"]

        parent_map[level] = new_id
        order_map[level] = order_no + 1

    print("[INFO] motie_org_chart seed complete.")

if __name__ == "__main__":
    seed_chart()
