package nlib.bbs.service.impl;

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

import org.springframework.stereotype.Repository;

import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
import nlib.cmm.service.NotificationVO;
import nlib.bbs.service.ArticleVO;
import nlib.bbs.service.AttachFileVO;
import nlib.cmm.service.NlibProperty;
import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil;

/**
 * <pre>
 * @Class Name : AttachFileDAO.java
 * 
 * @Description : 게시판 첨부파일 관리 DAO  
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * </pre>
 *
 * @ ------------    --------    ---------------------------
 * @ 수정일                     수정자             수정내용
 * @ ------------    --------    ---------------------------
 * @ 2021. 9. 16.    KNKIM       최초 생성
 *
 * 
 * @author 이씨플라자 * DIGITALSHIP KNKIM
 * @since 2021. 9. 16.
 * @version 1.0
 *
 */
@Mapper("attachFileDAO")
public interface AttachFileDAO {
	
	/**
	 * 첨부파일 목록을 조회한다.  
	 * 
	 * @param
	 * @return
	 * @throws Exception
	 */
	public List<AttachFileVO> listAttachFiles(String attachFileId) throws Exception;


	/**
	 * 첨부파일그룹을 등록한다.   
	 * 
	 * @param
	 * @return
	 * @throws Exception
	 */
	public int insertAttachFileGroup(AttachFileVO attachFileVO) throws Exception;
	

	/**
	 * 첨부파일 등록한다.   
	 * 
	 * @param
	 * @return
	 * @throws Exception
	 */
	public int insertAttachFile(AttachFileVO attachFileVO) throws Exception;
	
	/**
	 * 첨부파일그룹을 삭제한다.   
	 * 
	 * @param
	 * @return
	 * @throws Exception
	 */
	public int deleteAttachFileGroup(String attachFileId) throws Exception;
	
	/**
	 * 첨부파일그룹에 속한 모든 파일을 삭제한다. 
	 * 
	 * @param attachFileVO
	 * @return
	 * @throws Exception
	 */
	public int deleteAllFilesOfAttachFileGroup(String attachFileId) throws Exception;
	
	/**
	 * 첨부파일 삭제한다.   
	 * 
	 * @param
	 * @return
	 * @throws Exception
	 */
	public int deleteAttachFile(AttachFileVO attachFileVO) throws Exception;
	
	/**
	 * 첨부파일 정보를 조회한다.  
	 * 
	 * @param attachFileVO
	 * @return
	 * @throws Exception
	 */
	public AttachFileVO selectAttachFile(AttachFileVO attachFileVO) throws Exception;

	/**
	 * 다운로드 가능 여부를 확인하다.
	 * 
	 * @param attachFileVO
	 * @return
	 * @throws Exception
	 */
	public String checkAttachFileDownload(AttachFileVO attachFileVO) throws Exception;
}
