package incheon.product.geoview3d.simulation.service.impl;

import incheon.product.geoview3d.simulation.mapper.SimulationMapper;
import incheon.product.geoview3d.simulation.service.SimulationService;
import incheon.product.geoview3d.simulation.vo.SubwayVO;
import incheon.product.geoview3d.simulation.vo.TilesetClippingVO;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 시뮬레이션 서비스 구현체.
 */
@Service("productSimulationService")
public class SimulationServiceImpl extends EgovAbstractServiceImpl implements SimulationService {

    @Resource(name = "productSimulationMapper")
    private SimulationMapper simulationMapper;

    @Override
    public String getSimulationJson(String simId) {
        return simulationMapper.selectSimulationJson(simId);
    }

    @Override
    public TilesetClippingVO getClipping(String clipId) {
        return simulationMapper.selectTilesetClipping(clipId);
    }

    @Override
    public SubwayVO getSubway(String subwayName) {
        SubwayVO subway = simulationMapper.selectSubwayByName(subwayName);
        if (subway != null) {
            subway.setStationShapes(
                    simulationMapper.selectStationShpsBySubwayName(subwayName)
                            .toArray(new SubwayVO.SubwayStationShpVO[0]));
            subway.setStations(
                    simulationMapper.selectStationsBySubwayName(subwayName)
                            .toArray(new SubwayVO.SubwayStationVO[0]));
        }
        return subway;
    }
}
