package incheon.ags.drm.mapper;

import incheon.ags.drm.vo.DrmContentVO;
import incheon.ags.drm.vo.DrmOrthoVO;
import incheon.ags.drm.vo.DrmPoiVO;
import incheon.ags.drm.vo.DrmResultVO;
import incheon.cmm.g2f.layer.vo.TaskLayerSearchRequestDTO;
import incheon.cmm.g2f.layer.vo.TaskLayerVO;
import incheon.com.config.annotation.MainDB;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

import java.util.List;
import java.util.Map;

@Mapper @MainDB
public interface agsDrmMapper {

    List<Map<String, Object>>selectColumnsExcludeGeom(String layerName) throws Exception;
    List<Map<String, Object>>selectColumnsCommentExcludeGeom(String layerName) throws Exception;
    List<TaskLayerVO> getLayerList(TaskLayerSearchRequestDTO searchVO);
    List<Map<String, Object>> getAddressByPoint(String pnu) throws Exception;

    /* DRM_POI */
    int countContentByRelPoi(Long relPoiId) throws Exception;
    int countResultByRelPoi(Long relPoiId) throws Exception;
    void deleteContentByRelPoi(Long relPoiId) throws Exception;
    void deleteResultByRelPoi(Long relPoiId) throws Exception;
    List<DrmPoiVO> selectPOIList(DrmPoiVO drmPoiVO) throws Exception;
    int selectPOIListCnt(DrmPoiVO drmPoiVO) throws Exception;
    DrmPoiVO searchPoiDetail(DrmPoiVO drmPoiVO) throws Exception;
    void updatePoi(DrmPoiVO drmPoiVO) throws Exception;
    void deletePOI(DrmPoiVO drmPoiVO) throws Exception;
    void registerContent(DrmContentVO drmContentVO) throws Exception;
    void registerResult(DrmResultVO drmResultVO) throws Exception;

    /* CONTENT */
    Long getContentIdSeq() throws Exception;
    List<DrmContentVO> selectContentList(DrmContentVO drmContentVO) throws Exception;
    int selectContentListCnt(DrmContentVO drmContentVO) throws Exception;
    DrmContentVO searchContentDetail(Long contsId) throws Exception;
    void updateContent(DrmContentVO drmContentVO) throws Exception;
    void deleteContent(Long contsId) throws Exception;

    /* RESULT */
    List<DrmResultVO> selectResultList(DrmResultVO drmResultVO) throws Exception;
    int selectResultListCnt(DrmResultVO drmResultVO) throws Exception;
    DrmResultVO searchResultDetail(Long rsulId) throws Exception;
    void updateResult(DrmResultVO drmResultVO) throws Exception;
    void deleteResult(Long rsulId) throws Exception;

    /* ORTHOPHOTO */
    List<DrmOrthoVO> selectOrthoList(DrmOrthoVO drmOrthoVO) throws Exception;
    int selectOrthoListCnt(DrmOrthoVO drmOrthoVO) throws Exception;
    void registerOrtho(DrmOrthoVO drmOrthoVO) throws Exception;
    DrmOrthoVO searchOrthoDetail(Long orthoId) throws Exception;
    void updateOrtho(DrmOrthoVO drmOrthoVO) throws Exception;
    void deleteOrtho(Long orthoId) throws Exception;
}
