package incheon.ags.dss.under.mapper;

import java.util.List;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import incheon.ags.dss.under.vo.UrbUdgdFcltyMstVO;
import incheon.ags.dss.under.vo.UrbUdgdFcltyDtlVO;

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

    // 1. 분석 마스터 등록 (조건 저장)
    void insertUrbUdgdFcltyMst(UrbUdgdFcltyMstVO vo) throws Exception;

    // 2. 분석 상세 데이터 추출 및 적재 (ETL 쿼리 실행)
    void insertUrbUdgdFcltyDtl(int anlsMngNo) throws Exception;

    // 3. 분석 결과(건수 등) 마스터 업데이트
    void updateUrbUdgdFcltyMstResult(int anlsMngNo) throws Exception;

    // 4. 분석 이력 목록 조회 (마스터)
    List<UrbUdgdFcltyMstVO> selectUrbUdgdFcltyMstList(UrbUdgdFcltyMstVO vo) throws Exception;

    // 5. 분석 결과 상세 조회 (디테일 - 지도/목록용)
    List<UrbUdgdFcltyDtlVO> selectUrbUdgdFcltyDtlList(UrbUdgdFcltyDtlVO vo) throws Exception;
    
    int selectUrbUdgdFcltyDtlCount(UrbUdgdFcltyDtlVO vo);
    
    // 6. 기존 분석 삭제
    void deleteUrbUdgdFcltyMst(UrbUdgdFcltyMstVO vo) throws Exception;
    void deleteUrbUdgdFcltyDtl(UrbUdgdFcltyMstVO vo) throws Exception;
}