package net.okjsp.recommendation.dao;
import net.okjsp.recommendation.model.BoardRecommend;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 추천/반대/신고 Dao.
*
* @author yjc0703
*/
@Repository
public interface BoardRecommendDao {
/**
* 게시글(또는 댓글)에 대한 추천 / 반대 / 신고 (단일항목. 중복체크 용도)
* @param boardRecommend 추천
* @return
*/
List<BoardRecommend> selectOne(BoardRecommend boardRecommend);
/**
* 게시글에 대한 추천/반대/신고 리스트
*
* @param boardId 게시판 id
* @param writeNo 게시글 no
* @param commentId 댓글 id
* @return
*/
public List<BoardRecommend> selectRecommendations(@Param("boardId") int boardId,
@Param("writeNo") int writeNo,
@Param("commentId") int commentId);
/**
* 게시글에 대한 추천/반대/신고 리스트(구분별)
*
* @param boardId 게시판 id
* @param writeNo 게시글 no
* @param commentId 댓글 id
* @param guboonId 구분 id (1 : 추천, 2 : 반대, 3 : 신고)
* @return
*/
public List<BoardRecommend> selectRecommendationsByGuboon(@Param("boardId") int boardId,
@Param("writeNo") int writeNo,
@Param("commentId") int commentId,
@Param("guboonId") String guboonId);
/**
* 유저별 전체 추천/반대/신고 리스트
* 추후 개인화 작업에서 활용 (내가 추천한 글, 내가 반대한 글, 내가 신고한 글)
*
* @param userId 사용자 id
* @return
*/
public List<BoardRecommend> selectRecommendationsByUser(@Param("userId") int userId);
/**
* 게시물에 대한 구분 별 count
*
* @param boardId 게시판 id
* @param writeNo 게시글 no
* @param commentId 댓글 id
* @param guboonId 구분 id (1 : 추천, 2 : 반대, 3 : 신고)
* @return
*/
public Integer selectCountByGuboon(@Param("boardId") int boardId,
@Param("writeNo") int writeNo,
@Param("commentId") int commentId,
@Param("guboonId") String guboonId);
/**
* 추천, 반대, 신고 등록
*
* @param boardRecommend 추천/반대/신고
* @return
*/
public Integer insert(BoardRecommend boardRecommend);
/**
* 추천, 반대, 신고 삭제
*
* @param boardId 게시판 id
* @param writeNo 게시글 no
* @param commentId 댓글 id
* @param guboonId 구분 id (1 : 추천, 2 : 반대, 3 : 신고)
* @param userId 사용자 id
* @return
*/
public Integer delete(@Param("boardId") int boardId,
@Param("writeNo") int writeNo,
@Param("commentId") int commentId,
@Param("guboonId") String guboonId,
@Param("userId") int userId);
}