package nlib.col.service;

import java.util.HashMap;
import java.util.List;

/**
 * <pre>
 * @Class Name : CollectionService.java
 * 
 * @Description : 소장자료 정보를 조회하는 서비스 인터페이스 
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * </pre>
 *
 * @ ------------    --------    ---------------------------
 * @ 수정일                     수정자             수정내용
 * @ ------------    --------    ---------------------------
 * @ 2021. 10. 6.    KNKIM       최초 생성
 *
 * 
 * @author 이씨플라자 * DIGITALSHIP KNKIM
 * @since 2021. 10. 6.
 * @version 1.0
 *
 */
public interface CollectionService {
	
	/**
	 * 자료 상세정보를 조회한다.
	 * 
	 * @param searchVO
	 * @return
	 * @throws Exception
	 */
	public CollectionVO getItemInfo(CollectionVO searchVO) throws Exception;
	
	/**
	 * 목록의 자료정보에 상세정보를 조회하여 설정한 후 리턴한다. 
	 * 
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public List<CollectionVO> setDetailInfoForList(List<CollectionVO> list) throws Exception;
	

	/**
	 * 목록의 자료정보에 상세정보를 조회하여 설정한 후 리턴한다. 
	 * 
	 * @param list
	 * @param mbInfoId
	 * @param defaultThumbnailUrl
	 * @return
	 * @throws Exception
	 */
	public List<CollectionVO> setDetailInfoForList(List<CollectionVO> list, String mbInfoId) throws Exception;
	
	/**
	 * 목록의 자료정보에 상세정보를 조회하여 설정한 후 리턴한다. 
	 * 
	 * @param list
	 * @param mbInfoId
	 * @param defaultThumbnailUrl
	 * @return
	 * @throws Exception
	 */
	public List<CollectionVO> setDetailInfoForHashList(List<HashMap<String, String>> list, String mbInfoId) throws Exception;

	/**
	 * 자료 마스터ID 목록 문자열을 받아 CollectionVO 리스트 생성하여 리턴한다. 
	 * 
	 * @param masterIds
	 * @return
	 */
	public List<CollectionVO> makeListOfCollectionVO(String masterIds);
	
	/**
	 * 자료 마스터ID 목록 문자열을 받아 상세내용을 조회하고, CollectionVO 리스트 생성하여 리턴한다. 
	 * 
	 * @param masterIds
	 * @return
	 */
	public List<CollectionVO> makeInfoListOfCollectionVO(String masterIds, String mbInfoId) throws Exception;

	/**
	 * 자료상세조회 및 원문보기시에 로그
	 * @param colVO
	 */
	public void insertDataInquiryLog(CollectionVO colVO) throws Exception;

	/**
	 * 함께 볼만한 자료 리스트
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public List<CollectionVO> selectSeeTogetherList(CollectionVO vo) throws Exception;

	/**
	 * 유사한 자료 리스트
	 * @param vo
	 * @return
	 * @throws Exception
	 */
	public List<CollectionVO> selectSimilarList(CollectionVO vo) throws Exception;
	
}
