package incheon.cmm.g3f.sample.service.impl;

import java.util.LinkedHashMap;
import java.util.Map;

import org.egovframe.rte.psl.dataaccess.util.EgovMap;
import org.springframework.stereotype.Service;

import incheon.cmm.g3f.sample.dto.G3FBuildingInfo;
import incheon.cmm.g3f.sample.mapper.G3FSampleMapper;
import incheon.cmm.g3f.sample.service.G3FSampleService;

@Service
public class G3FSampleServiceImpl implements G3FSampleService {
    private final G3FSampleMapper mapper;

    public G3FSampleServiceImpl(G3FSampleMapper mapper) {
        this.mapper = mapper;
    }

    @Override
    public G3FBuildingInfo getBuildingInfoByLocation(double lon, double lat) {
        EgovMap result = mapper.selectBuildingInfoByLocation(lon, lat);
        if (result == null || result.isEmpty()) return null;

        String geom = result.get("geom") != null ? result.get("geom").toString() : null;

        Map<String, Object> attr = new LinkedHashMap<>(result);
        attr.remove("geom");

        G3FBuildingInfo info = new G3FBuildingInfo();
        info.setGeom(geom);
        info.setAttr(attr);
        return info;
    }
}