package com.ruoyi.mall.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.ruoyi.mall.domain.Bo.CommentArticleRequest;
import com.ruoyi.mall.domain.Bo.CommentDelRequest;
import com.ruoyi.mall.domain.Bo.CommentReplyRequest;
import com.ruoyi.mall.domain.BusinessArticleComment;
import com.ruoyi.mall.domain.Vo.QueryArtilceCommentListResponse;
import com.ruoyi.mall.domain.Vo.QueryArtilceReplyListResponse;

/**
 * 帖子评论Service接口
 * 
 * @author ruoyi
 * @date 2023-10-18
 */
public interface IBusinessArticleCommentService
{

    /**
     * 查询帖子评论列表 API
     * @param artilceId
     * @return
     */
    List<QueryArtilceCommentListResponse> queryArtilceCommentList(Long artilceId);

    /**
     * 查询帖子 子级评论列表 API
     * @param commentId
     * @return
     */
    List<QueryArtilceReplyListResponse>  queryArtilceReplyList(Long commentId);

    /**删除评论
     *
     * @param commentDelRequest
     * @return
     */
     String delCommentArticle(CommentDelRequest commentDelRequest);

    /**
     * 评论帖子 API
     * @param commentArticleRequest
     * @return
     */
    Boolean commentArticle(CommentArticleRequest commentArticleRequest);

    /**
     * 回复评论 APi
     * @param commentReplyRequest
     * @return
     */
    Boolean replyComment(CommentReplyRequest commentReplyRequest);

    /**
     * 查询帖子评论
     * 
     * @param commentId 帖子评论主键
     * @return 帖子评论
     */
    public BusinessArticleComment selectBusinessArticleCommentByCommentId(Long commentId);

    /**
     * 查询帖子评论列表
     * 
     * @param businessArticleComment 帖子评论
     * @return 帖子评论集合
     */
    public List<BusinessArticleComment> selectBusinessArticleCommentList(BusinessArticleComment businessArticleComment);

    /**
     * 新增帖子评论
     * 
     * @param businessArticleComment 帖子评论
     * @return 结果
     */
    public int insertBusinessArticleComment(BusinessArticleComment businessArticleComment);

    /**
     * 修改帖子评论
     * 
     * @param businessArticleComment 帖子评论
     * @return 结果
     */
    public int updateBusinessArticleComment(BusinessArticleComment businessArticleComment);

    /**
     * 批量删除帖子评论
     * 
     * @param commentIds 需要删除的帖子评论主键集合
     * @return 结果
     */
    public int deleteBusinessArticleCommentByCommentIds(Long[] commentIds);

    /**
     * 删除帖子评论信息
     * 
     * @param commentId 帖子评论主键
     * @return 结果
     */
    public int deleteBusinessArticleCommentByCommentId(Long commentId);
}
