package sgc.portal.base.websquare;

import lombok.extern.slf4j.Slf4j;
import websquare.upload.handl.AbstractUploadFileDefiner;
import websquare.util.DateUtil;

@Slf4j
public class FileNameDefiner extends AbstractUploadFileDefiner {

    /**
     * @param          String clientFileName : client에서 요청한 파일명
     *                 String originalFileName : 현재 웹스퀘어가 변환한 파일명
     * @return         String : 변경된 파일명
     * @desc           변경 대상 실제 파일명을 받아 파일명 변경 한다. 
     *                 getFileName을 구현 하여야 한다.
     */
    public String getFileName(String clientFileName, String originalFileName) throws Exception {
        log.debug("clientFileName <{}> originalFileName <{}>", clientFileName, originalFileName);
        String returnFileName = null;
        int index = clientFileName.lastIndexOf(".");
        String pFileNm = DateUtil.getCurrentDate("yyyyMMddHHmmssSSS");
        
        if (index > -1) {
            String ext = clientFileName.substring(index + 1);
            // returnFileName = clientFileName.substring(0, index) + "_TEST" + "." + ext;
            returnFileName = clientFileName.substring(0, index) + pFileNm + "." + ext;
        } else {
            // returnFileName = clientFileName.substring(0) + "_TEST";
            returnFileName = clientFileName.substring(0) + pFileNm;
        }
        log.debug("returnFileName <{}>", returnFileName);
        return returnFileName;
    }
    
    /**
     * @param          String filePath : 현재 웹스퀘어가 정의한 서버 파일 경로
     * @return         String : 변경된 파일 경로
     * @desc           현재 파일경로를 받아 파일경로를 재 설정 한다.
     *                 getFilePath를 구현 하여야 한다.
     */
    public String getFilePath(String filePath) {

        String returnFilePath = "/upload/files"; // C:/TEMP_WAS
        log.debug("returnFilePath <{}> filePath <{}>", returnFilePath, filePath);

        return returnFilePath;
    }

}
