package cokr.xit.fims.crdn.receive.eqpmnt.dao;

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

import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

import cokr.xit.fims.crdn.CrdnQuery;
import cokr.xit.fims.crdn.receive.eqpmnt.LayoutDescriptor;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;

@Mapper("crdnEqpmntMapper")
public interface CrdnEqpmntMapper extends AbstractMapper {
	/** 연계파일 레이아웃 목록을 조회한다.
	 * @param query 연계파일 레이아웃 조회조건
	 * @return 연계파일 레이아웃 목록
	 */
	List<DataObject> selectLinkFileLayoutMetadataList(CrdnQuery query);

	/** 연계파일 레이아웃 정보를 조회한다.
	 * @param 연계파일 레이아웃 ID
	 * @return 연계파일 레이아웃 상세 정보
	 */
	DataObject selectLinkFileLayoutMetadataInfo(String fileLayoutId);

	/** 연계파일 레이아웃 정보를 등록한다.
	 * @param map 등록 요청 파라미터
	 * @return 저장된 정보 수
	 */
	int insertCrdnFileLayout(Map<String, Object> map);

	/** 파일연계 원격지 정보를 등록한다.
	 * @param map 등록 요청 파라미터
	 * @return 저장된 정보 수
	 */
	int insertFtpInfo(Map<String, Object> map);

	/** 연계파일 레이아웃 정보를 수정한다.
	 * @param map 수정 요청 파라미터
	 * @return 저장된 정보 수
	 */
	int updateCrdnFileLayout(Map<String, Object> map);

	/** 파일연계 원격지 정보를 수정한다.
	 * @param map 수정 요청 파라미터
	 * @return 저장된 정보 수
	 */
	int updateFtpInfo(Map<String, Object> map);

	/** 연계파일 레이아웃 정보를 삭제한다.
	 * @param map 삭제 요청 파라미터
	 * @return 저장된 정보 수
	 */
	int deleteCrdnFileLayout(Map<String, Object> map);

	/** 연계파일 레이아웃 엔티티 정보를 조회한다.
	 * @param query 연계파일 레이아웃 조회조건
	 * @return 연계파일 레이아웃 엔티티
	 */
	List<LayoutDescriptor> selectLinkFileLayoutMetadata(CrdnQuery query);

	/** 레이아웃별 연계파일의 ftp정보를 조회한다.
	 * @param fileLayoutId 파일 레이아웃 ID
	 * @return ftp정보
	 */
	DataObject selectRemoteInfo(String fileLayoutId);
}