package incheon.ags.dss.config.service;

import java.util.List;

import incheon.ags.dss.config.vo.SimZoneMstVO;
import incheon.ags.dss.regen.vo.UrbMdlMstVO;

public interface SimZoneService {
	/**
     * 구역 목록 조회 (Mst)
     * (ComDefaultVO의 페이징/검색 필드 사용)
     */
    List<SimZoneMstVO> selectSimZoneList(SimZoneMstVO searchVO) throws Exception;

    /**
     * 구역 목록 총 개수 (Mst)
     * (ComDefaultVO의 검색 필드 사용)
     */
    int selectSimZoneListCnt(SimZoneMstVO searchVO) throws Exception;

    List<UrbMdlMstVO> selectSimZoneRecentList(SimZoneMstVO searchVO) throws Exception;
    
    /**
     * 구역 상세 정보 조회 (Mst + Dtl)
     * @return Mst VO에 Dtl List(itemList)가 포함된 VO
     */
    SimZoneMstVO selectSimZoneDetail(SimZoneMstVO vo) throws Exception;

    /**
     * 구역 정보 저장(등록/수정) (Mst + Dtl) (트랜잭션)
     */
    Long saveSimZone(SimZoneMstVO vo) throws Exception;
    
    /**
     * 구역 정보 삭제 (Mst + Dtl 및 모든 자식) (트랜잭션)
     */
    int deleteSimZone(SimZoneMstVO vo) throws Exception;
}