package kcg.faics.report.service;

import java.util.Map;

import kcg.faics.cmmn.bbs.BaseFileService;
import kcg.faics.report.vo.ReportFileVO;
import kcg.faics.report.vo.ReportVO;

import org.springframework.web.multipart.MultipartFile;

/**
 * 견문 파일 인터페이스이다.
 * @author 하영지
 * @since 2016. 10. 18.
 */
public interface ReportFileService {

	/**
	 * property 파일에서 읽은 저장 경로 키워드. 
	 */
	static final String FILE_PATH_KEYWORD = "Report.fileStorePath";
	
	/**
	 * 견문 파일 시퀀스를 반환한다.
	 * 
	 * @return 견문 파일 시퀀스
	 * @throws Exception 기본예외처리
	 */
	int selectFileSeq() throws Exception;
	
	/**
	 * 첨부파일정보 입력 및 업로드
	 * 
	 * @param dataVO 견문객체
	 * @param fileMap 파일맵
	 * @return 성공:1, 실패:0
	 * @throws Exception 기본예외처리
	 */
	int insertAndSaveFiles(final ReportVO dataVO, final Map<String, MultipartFile> fileMap) throws Exception;
	
	/**
	 * 첨부파일 정보를 삭제하고 디렉토리내의 파일도 삭제한다.
	 * 
	 * @param dataVO 견문 객체
	 * @param deleteFiles 삭제할 첨부파일 순번
	 * @return 성공:1, 실패:0
	 * @throws Exception 기본예외처리
	 */
	int deleteAndRemoveFiles(final ReportVO dataVO, String[] deleteFiles) throws Exception;

}
