package egovframework.com.mtdata.comtrls.service;

import egovframework.com.mtdata.comtrls.dto.ComtrlsMultiColDTO;
import egovframework.com.mtdata.comtrls.dto.ComtrlsSrcdataDTO;
import egovframework.com.mtdata.comtrls.vo.ComtrlsColVO;
import egovframework.com.mtdata.comtrls.vo.ComtrlsMetaDataVO;
import egovframework.com.mtdata.comtrls.vo.ComtrlsSrcdataVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;

import java.util.Map;

import java.util.List;

public interface ComtrlsdataService {


	/**
	 * 공유데이터의 메타데이터를 [comtrlstrgtmetadata] 테이블에 저장
	 *
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	void insertComtrlsMetadataInfo(ComtrlsMetaDataVO vo) throws Exception;


	/**
	 * 공유데이터 컬럼메타정보 삭제 : DELETE [comtrlsdatacol], json 데이터에서도 삭제 : UPDATE [COMTRLSDATA]
	 *
	 * @param colDTO
	 * @return
	 * @throws Exception
	 */
	public int deleteComtrlsColAndData(ComtrlsMultiColDTO colDTO) throws Exception;

//
//
//	/**
//	 * 원천데이터의 컬럼정보 [comtsrcdatacol] 테이블에 저장
//	 *
//	 * @param vo
//	 * @return
//	 * @throws Exception
//	 */
//	public int insertComtSrcCol(ComtrlsColVO vo) throws Exception;
//
//
//	/**
//	 * test
//	 *
//	 * @param vo
//	 * @return
//	 * @throws Exception
//	 */
//
//	public int updateDatasrc(ComtrlsSrcdataVO vo) throws Exception;
//
//	ComtsrcdataDTO selectComtSrcData(ComtrlsSrcdataVO vo) throws Exception;

	List<ComtrlsMetaDataVO> selectComtrlsMetaDataList(ComtrlsMetaDataVO vo);

	ComtrlsMetaDataVO selectComtrlsMetaDataInfo(ComtrlsMetaDataVO vo);

	ComtrlsColVO selectComtrlsCol(ComtrlsColVO vo);

	ComtrlsSrcdataDTO selectComtrlsSrcData(ComtrlsSrcdataVO vo) throws Exception;

	void deIdentificationMasking(ComtrlsColVO vo) throws Exception;
}
