# -*- coding: utf-8 -*-
"""
상수 및 유틸리티 함수 모듈
- 지목 코드 매핑
- 지목 추출 유틸리티
"""

# 지목 코드 매핑 (연속지적도 jibun 마지막 글자 기준)
JIMOK_CODE_MAP = {
    '전': '전', '답': '답', '과': '과수원', '목': '목장용지', '임': '임야',
    '광': '광천지', '염': '염전', '대': '대', '장': '공장용지', '학': '학교용지',
    '차': '주차장', '주': '주유소용지', '창': '창고용지', '도': '도로', '철': '철도용지',
    '제': '제방', '하': '하천', '구': '구거', '유': '유지', '양': '양어장',
    '수': '수도용지', '공': '공원', '체': '체육용지', '원': '유원지', '종': '종교용지',
    '사': '사적지', '묘': '묘지', '잡': '잡종지'
}

# 지목 코드 (숫자) 매핑
JIMOK_NUM_MAP = {
    '01': '전', '02': '답', '03': '과수원', '04': '목장용지', '05': '임야',
    '06': '광천지', '07': '염전', '08': '대', '09': '공장용지', '10': '학교용지',
    '11': '주차장', '12': '주유소용지', '13': '창고용지', '14': '도로', '15': '철도용지',
    '16': '제방', '17': '하천', '18': '구거', '19': '유지', '20': '양어장',
    '21': '수도용지', '22': '공원', '23': '체육용지', '24': '유원지', '25': '종교용지',
    '26': '사적지', '27': '묘지', '28': '잡종지'
}


def extract_jimok_from_jibun(jibun_str):
    """지번 문자열에서 지목 추출 (마지막 글자 또는 코드)"""
    if not jibun_str:
        return '미분류'

    jibun_str = str(jibun_str).strip()

    # 마지막 글자가 한글인 경우
    if jibun_str and jibun_str[-1] in JIMOK_CODE_MAP:
        return JIMOK_CODE_MAP[jibun_str[-1]]

    return '미분류'


def extract_jimok_from_pnu(pnu_str):
    """PNU에서 지목 코드 추출 (11-12번째 자리)"""
    if not pnu_str or len(pnu_str) < 12:
        return '미분류'

    jimok_code = pnu_str[10:12]
    return JIMOK_NUM_MAP.get(jimok_code, '미분류')
