package kcg.imis.report.service;

import java.util.Map;

import kcg.imis.report.vo.ReportVO;

import org.springframework.web.multipart.MultipartFile;

/**
  * @FileName : ReportFileService.java
  * @Project : 국제해양프로젝트
  * @Date : 2018. 3. 29. 
  * @작성자 : Moon
  * @변경이력 : 
  * @프로그램 설명 :
 */
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;

}
