package incheon.product.geoview2d.layer.service;

import incheon.product.geoview2d.layer.vo.TaskLayerSearchVO;
import incheon.product.geoview2d.layer.vo.TaskLayerVO;

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

/**
 * 업무 레이어 관리 서비스 인터페이스.
 * 업무 레이어 CRUD, 조회, GIS 서버 연동을 담당한다.
 */
public interface TaskLayerService {

    TaskLayerVO getById(Integer taskLyrId);

    List<TaskLayerVO> getAll();

    List<TaskLayerVO> getList(String searchKeyword, String searchType, int page, int size);

    int getTotalCount(String searchKeyword, String searchType);

    List<TaskLayerVO> getTaskLayerList(TaskLayerSearchVO searchVO, Set<String> removedGroupCd);

    long getTaskLayerListTotCnt(TaskLayerSearchVO searchVO, Set<String> removedGroupCd);

    void create(TaskLayerVO taskLayer);

    void update(TaskLayerVO taskLayer);

    void metaUpdate(TaskLayerVO taskLayer);

    void delete(Integer taskLyrId);

    List<Map<String, Object>> getGroupCodes();

    Map<String, Object> verifyGeometryTable(String schema, String tableNm, String lyrSrvcNm, String lyrPhysNm);
}
