package egovframework.com.mtdata.comtsrcdata.mapper;

import egovframework.com.mtdata.comtsrcdata.vo.ComtColVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtExtrtVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtTableVO;
import egovframework.com.mtdata.comtsrcdata.vo.ComtsrcdataVO;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

import java.util.List;

@Mapper("ComtsrcdataMapper")
public interface ComtsrcdataMapper {

	/**
	 * [comtsrcdatameta_new]테이블 조회
	 *
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public ComtTableVO selectSrcMetaData(ComtTableVO vo) throws Exception;

//
//SELECT  src_data_meta_id,
//		extr_id,
//			src_data_tbl_nm
//FROM    comtsrcdatameta_new meta,
//		comtextrtblinfo ex
//	WHERE   1=1
//	meta.extr_id = ex.extr_id
//	    src_data_meta_id = #{srcDataMetaId}



	/**
	 * 원천데이터 추출정보를 [comtextrtblinfo]테이블에 저장
	 *
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public int insertComtExtrtInfo(ComtExtrtVO vo) throws Exception;


	/**
	 * 원천데이터 테이블을 [comtsrcdatameta] 테이블에 저장
	 *
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public int insertComtTabledataInfo(ComtTableVO vo) throws Exception;


	/**
	 * 원천데이터를 [comtsrcdata] 테이블에 저장
	 *
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public int insertComtSrcdata(ComtsrcdataVO vo) throws Exception;

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


	// 원천데이터 jsonb type 테스트 용 샘플
	public int updateDatasrc(ComtsrcdataVO vo) throws Exception;

	/**
	 * [comtsrcdata]테이블 조회
	 *
	 * @param vo
	 * @return vo
	 * @throws Exception
	 */
	ComtsrcdataVO selectSrcData(ComtsrcdataVO vo);



}
