package incheon.ags.por.service;

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

import incheon.ags.por.vo.PorBoardFileVO;
import incheon.ags.por.vo.PorBoardVO;
import incheon.ags.por.vo.PorFileVO;

/**
 * 게시물 파일 관리를 위한 서비스 인터페이스
 */
public interface PorBoardFileService {

    /**
     * 게시물 파일 목록을 조회한다.
     * @param PorBoardFileVO - 조회할 정보가 담긴 PorBoardFileVO
     * @return 게시물 파일 목록
     * @exception Exception
     */
    public List<PorFileVO> selectBoardFileList(PorBoardFileVO porBoardFileVO) throws Exception;
    
    /**
     * 게시물 파일을 상세조회한다.
     * @param PorBoardFileVO - 조회할 정보가 담긴 PorBoardFileVO
     * @return 게시물 파일
     * @exception Exception
     */
    public PorFileVO selectBoardFile(PorFileVO porFileVO) throws Exception;
    
    /**
     * 게시물 파일을 등록한다.
     * @param PorBoardFileVO - 등록할 정보가 담긴 PorBoardFileVO
     * @return 등록 성공 여부
     * @exception Exception
     */
    public Long insertBoardFile(PorBoardFileVO porBoardFileVO) throws Exception;
    
    /**
     * 게시물 파일을 삭제한다.
     * @param PorBoardFileVO - 삭제할 정보가 담긴 PorBoardFileVO
     * @return 삭제 성공 여부
     * @exception Exception
     */
    public Integer deleteBoardFile(PorBoardFileVO porBoardFileVO) throws Exception;
    
    /**
     * 첨부파일을 이미지, 일반파일 List로 분리한다.
     * @param List<FileVO> - 분배할 정보가 담긴 FileVO
     * @return 분배 결과물 Map Object
     * @exception Exception
     */
    public Map<String, Object> distributeFileList(List<PorFileVO> fileList) throws Exception;
    
} 