package incheon.ags.por.mapper;

import java.util.List;

import incheon.ags.por.vo.PorBoardVO;
import incheon.com.config.annotation.MainDB;

import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

/**
 * 공지사항 정보 관리를 위한 데이터 접근 매퍼
 */
@org.egovframe.rte.psl.dataaccess.mapper.Mapper @incheon.com.config.annotation.MainDB
public interface PorBoardMapper {

    /**
     * 게시물 목록 건수를 조회한다.
     * @param boardVO - 조회할 정보가 담긴 BoardVO
     * @return 게시물 건수
     * @exception Exception
     */
    public int selectBoardListCount(PorBoardVO boardVO) throws Exception;
    
    /**
     * 게시물 목록을 조회한다.
     * @param boardVO - 조회할 정보가 담긴 BoardVO
     * @return 게시물 목록
     * @exception Exception
     */
    public List<PorBoardVO> selectBoardList(PorBoardVO boardVO) throws Exception;
    
    /**
     * 게시물 상세정보를 조회한다.
     * @param boardVO - 조회할 정보가 담긴 BoardVO
     * @return 게시물 상세정보
     * @exception Exception
     */
    public PorBoardVO selectBoardDetail(PorBoardVO boardVO) throws Exception;
    
    /**
     * 게시물 조회수를 수정한다.
     * @param boardVO - 수정할 정보가 담긴 BoardVO
     * @return void
     * @exception Exception
     */
    public void updateBoardReadCount(PorBoardVO boardVO) throws Exception;
    
    /**
     * 게시물을 등록한다.
     * @param boardVO - 등록할 정보가 담긴 BoardVO
     * @return 등록된 게시물 ID
     * @exception Exception
     */
    public Long insertBoard(PorBoardVO boardVO) throws Exception;
    
    /**
     * 게시물을 수정한다.
     * @param boardVO - 수정할 정보가 담긴 BoardVO
     * @return void
     * @exception Exception
     */
    public Integer updateBoard(PorBoardVO boardVO) throws Exception;
    
    /**
     * 게시물을 삭제한다.
     * @param boardVO - 삭제할 정보가 담긴 BoardVO
     * @return void
     * @exception Exception
     */
    public Integer deleteBoard(PorBoardVO boardVO) throws Exception;
    
    /**
     * 공지사항 목록을 조회한다.
     * @param boardVO - 조회할 정보가 담긴 BoardVO
     * @return 공지사항 목록
     * @exception Exception
     */
    public List<PorBoardVO> selectBoardMasterList(PorBoardVO boardVO) throws Exception;
} 