package incheon.ags.dss.facility.service.impl;

import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;

import org.springframework.stereotype.Service;
// import org.springframework.web.client.RestTemplate;

import incheon.ags.dss.facility.service.RealEstateService;
import incheon.com.cmm.ComDefaultVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@Service("realEstateService")
@RequiredArgsConstructor
@Slf4j
public class RealEstateServiceImpl implements RealEstateService {

    // private final RestTemplate restTemplate;

    // --- 1. 토지(임야)대장 (13-14p) ---
    @Override
    public Map<String, Object> selectLandLedgerDetail(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Land Ledger Detail (Dummy Data)...");
        return new HashMap<>() {{
            put("pnuCode", searchVO.getSearchKeyword());
            put("address", "인천광역시 남동구 구월동 1138");
            put("landCategory", "대");
            put("area", 69091.1);
        }};
    }
    @Override
    public List<Map<String, Object>> selectLandLedgerHistoryList(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Land Ledger History (Dummy Data)...");
        return new ArrayList<>() {{
            add(new HashMap<>() {{ 
            	put("changeDate", "2020.01.08"); 
            	put("changeReason", "1336-11번지 합병"); 
            	}}
            );
        }};
    }
    @Override
    public List<Map<String, Object>> selectLandGradeHistoryList(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Land Grade History (Dummy Data)...");
        return new ArrayList<>() {{
            add(new HashMap<>() {{ 
            	put("year", "1991.01.01"); 
            	put("grade", "243"); 
            	}}
            );
        }};
    }

    // --- 2. 토지이용계획 (15p) ---
    @Override
    public List<Map<String, Object>> selectLandUsePlanList(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Land Use Plan List (Dummy Data)...");
        return new ArrayList<>() {{
            add(new HashMap<>() {{ 
            	put("zoneName", "제2종일반주거지역"); 
            	put("lawName", "국토의 계획 및 이용에 관한 법률"); 
            	}}
            );
        }};
    }
    @Override
    public Map<String, Object> selectLandUsePlanDrawing(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Land Use Plan Drawing (Dummy Data)...");
        return new HashMap<>() {{
            put("drawingUrl", "/images/dummy/dummy_plan_drawing.png"); // (임시 이미지 경로)
        }};
    }
    
    // --- 3. 건축물대장 (16-19p) ---
    @Override
    public Map<String, Object> selectBuildingBasicInfo(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Building Basic Info (Dummy Data)...");
        return new HashMap<>() {{
            put("bldgName", "구월힐스테이트/롯데캐슬골드");
            put("totalArea", 856257.03);
            put("floorCount", 64);
        }};
    }
    @Override
    public List<Map<String, Object>> selectBuildingFloorList(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Building Floor List (Dummy Data)...");
        return new ArrayList<>() {{
            add(new HashMap<>() {{ 
            	put("floorNum", "10층"); 
            	put("purpose", "아파트"); 
            	put("area", 443.483); 
            	}}
            );
        }};
    }
    @Override
    public List<Map<String, Object>> selectBuildingOccupantList(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Building Occupant List (Dummy Data)...");
        return new ArrayList<>() {{
            add(new HashMap<>() {{ 
            	put("roomNum", "1101동-202호"); 
            	put("purpose", "아파트");
            	put("area", 83.98); 
            	}}
            );
        }};
    }
    @Override
    public Map<String, Object> selectBuildingEtcInfo(ComDefaultVO searchVO) throws Exception {
        log.info("Requesting Building Etc Info (Dummy Data)...");
        return new HashMap<>() {{
            put("parkingInfo", "옥내 18대, 옥외 22대");
        }};
    }
}