package incheon.ags.dss.report.mapper;

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

import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

import incheon.ags.dss.report.vo.SimRptpMstVO;

@Mapper 
@incheon.com.config.annotation.MainDB 
public interface SimRptpMstMapper {

    /** 보고서정보 상세 조회 */
    SimRptpMstVO selectSimRptpMstDetail(SimRptpMstVO vo) throws Exception;
	
    /** 보고서정보 목록 조회 */
    List<SimRptpMstVO> selectSimRptpMstList(SimRptpMstVO vo) throws Exception;

    /** 보고서정보 목록 총 개수 */
    int selectSimRptpMstListCnt(SimRptpMstVO vo) throws Exception;
	
    /** 보고서정보 목록 조회 */
    List<SimRptpMstVO> selectSimRptpMstRecentList(SimRptpMstVO vo) throws Exception;
    
    
    /** 보고서정보 등록 */
    void insertSimRptpMst(SimRptpMstVO vo) throws Exception;

    /** 보고서정보 수정 */
    void updateSimRptpMst(SimRptpMstVO vo) throws Exception;

    /** 보고서정보 삭제 */
    void deleteSimRptpMst(SimRptpMstVO vo) throws Exception;

//    //보고서 생성 팝업용 후보군 조회
//    List<Map<String, Object>> selectCandidateStats(int zoneNo) throws Exception;
//    List<Map<String, Object>> selectCandidateDiagnosis(int zoneNo) throws Exception;
//    List<Map<String, Object>> selectCandidateModels(int zoneNo) throws Exception;
//    List<Map<String, Object>> selectCandidateGreenAnls(int zoneNo) throws Exception;
//    List<Map<String, Object>> selectCandidateUndergroundAnls(int zoneNo) throws Exception;
    
    // 목록 조회 (기존 int -> VO 변경)
    List<Map<String, Object>> selectCandidateStats(SimRptpMstVO vo) throws Exception;
    List<Map<String, Object>> selectCandidateDiagnosis(SimRptpMstVO vo) throws Exception;
    List<Map<String, Object>> selectCandidateModels(SimRptpMstVO vo) throws Exception;
    List<Map<String, Object>> selectCandidateGreenAnls(SimRptpMstVO vo) throws Exception;
    List<Map<String, Object>> selectCandidateUndergroundAnls(SimRptpMstVO vo) throws Exception;
    List<Map<String, Object>> selectCandidateFcltyAnls(SimRptpMstVO searchVO) throws Exception;
    List<Map<String, Object>> selectCandidateAccessAnls(SimRptpMstVO searchVO) throws Exception;
    
    // 개수 조회 (신규 추가)
    int selectCandidateStatsCnt(SimRptpMstVO vo) throws Exception;
    int selectCandidateDiagnosisCnt(SimRptpMstVO vo) throws Exception;
    int selectCandidateModelsCnt(SimRptpMstVO vo) throws Exception;
    int selectCandidateGreenAnlsCnt(SimRptpMstVO vo) throws Exception;
    int selectCandidateUndergroundAnlsCnt(SimRptpMstVO vo) throws Exception;
    int selectCandidateFcltyAnlsCnt(SimRptpMstVO searchVO) throws Exception;
    int selectCandidateAccessAnlsCnt(SimRptpMstVO searchVO) throws Exception;
    
    Map<String, Object> selectReportHeaderInfo(Long zoneNo) throws Exception;


}