package incheon.product.geoview3d.simulation.mapper;

import incheon.com.config.annotation.ExternalDB;
import incheon.product.geoview3d.simulation.vo.SubwayVO;
import incheon.product.geoview3d.simulation.vo.TilesetClippingVO;
import org.apache.ibatis.annotations.Param;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

import java.util.List;

/**
 * 시뮬레이션 매퍼. 시뮬레이션 JSON 및 지하철 관련 데이터를 조회한다.
 */
@Mapper("productSimulationMapper")
@ExternalDB
public interface SimulationMapper {

    /** 시뮬레이션 JSON 조회 */
    String selectSimulationJson(@Param("simId") String simId);

    /** 타일셋 클리핑 조회 */
    TilesetClippingVO selectTilesetClipping(@Param("clipId") String clipId);

    /** 지하철 노선 조회 (nested results) */
    SubwayVO selectSubwayByName(@Param("subwayName") String subwayName);

    /** 역사 형태 조회 */
    List<SubwayVO.SubwayStationShpVO> selectStationShpsBySubwayName(@Param("subwayName") String subwayName);

    /** 역사 목록 조회 */
    List<SubwayVO.SubwayStationVO> selectStationsBySubwayName(@Param("subwayName") String subwayName);
}
