package com.ruoyi.frequency.comment.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.page.PageResult;
import com.ruoyi.controller.req.CommentPageReq;
import com.ruoyi.controller.req.CommentReq;
import com.ruoyi.controller.req.DialoguePageReq;
import com.ruoyi.controller.resp.CommentPageResp;
import com.ruoyi.controller.resp.CommentResp;
import com.ruoyi.frequency.comment.entity.Comment;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.post.controller.req.DeleteCommentReq;
import com.ruoyi.response.ResponseData;
import com.ruoyi.vo.UserVo;

/**
 * 评论(新闻)Service接口
 * 
 * @author liwenlong
 * @date 2024-04-15
 */
public interface CommentService extends IService<Comment>
{
    /**
     * 查询评论(新闻)
     * 
     * @param id 评论(新闻)主键
     * @return 评论(新闻)
     */
    public Comment selectCommentById(Long id);

    /**
     * 查询评论(新闻)列表
     * 
     * @param comment 评论(新闻)
     * @return 评论(新闻)集合
     */
    public List<Comment> selectCommentList(Comment comment);

    /**
     * 新增评论(新闻)
     * 
     * @param comment 评论(新闻)
     * @return 结果
     */
    public int insertComment(Comment comment);

    /**
     * 修改评论(新闻)
     * 
     * @param comment 评论(新闻)
     * @return 结果
     */
    public int updateComment(Comment comment);

    /**
     * 批量删除评论(新闻)
     * 
     * @param ids 需要删除的评论(新闻)主键集合
     * @return 结果
     */
    public int deleteCommentByIds(Long[] ids,Integer delFlag);

    ResponseData<CommentResp> comment(CommentReq req, UserVo userVo);

    ResponseData<PageResult<Page<CommentPageResp>>> commentPage(CommentPageReq req, UserVo userVo);

    ResponseData deleteComment(DeleteCommentReq req, UserVo userVo);

    ResponseData<CommentResp> commentDetail(Long id, UserVo userVo);

    ResponseData<PageResult<Page<CommentPageResp>>> commentDialoguePage(DialoguePageReq req, UserVo userVo);
}
