package kr.gmtc.gw.elastic.services;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import kr.gmtc.gw.elastic.mapper.AeraMapper;
import kr.gmtc.gw.elastic.vo.AnalyzeArea.Area;

@Service
public class AeraService {
    
    @Autowired
    private AeraMapper aeraMapper;
    
    public List<HashMap<String, Object>> getAeraListMap() {
        return aeraMapper.selectAeraListMap();
    }

    public List<Area> getAeraList() {
        return aeraMapper.selectAeraList();
    }


    public Map<String, List<HashMap<String, Object>>> groupAreasByID(List<HashMap<String, Object>> areaList) {
        Map<String, List<HashMap<String, Object>>> groupedAreas = new HashMap<>();

        for (HashMap<String, Object> area : areaList) {
            String areaId = (String) area.get("AREA_ID");

            // 해당 지역 이름에 대한 맵 엔트리가 이미 있는지 확인하고, 없으면 새로운 리스트를 생성하여 추가합니다.
            if (!groupedAreas.containsKey(areaId)) {
                groupedAreas.put(areaId, new ArrayList<>());
            }

            // 해당 지역 이름에 해당하는 리스트를 가져와서 현재 지역 정보를 추가합니다.
            groupedAreas.get(areaId).add(area);
        }

        return groupedAreas;
    }

}
