package com.wzj.soopin.content.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.content.domain.bo.CommentBO;
import com.wzj.soopin.content.domain.po.Comment;
import com.wzj.soopin.content.domain.vo.CommentVO;
import com.wzj.soopin.content.domain.vo.ChildCommentVO;
// import com.wzj.soopin.content.utils.PagedGridResult;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;


import java.util.List;

public interface CommentService {

    /**
     * 获取评论列表
     */
    TableDataInfo<CommentVO> getCommentList(String vlogId, String mobile, PageQuery pageQuery);

    /**
     * 删除评论
     */
    void deleteComment(String commentId, String username);

    /**
     * 获取评论详情
     */
    Comment getCommentDetail(String commentId);

    /**
     * 获取子评论列表
     */
    List<Comment> getChildComments(String fatherCommentId);

    /**
     * 创建评论
     */
    void createComment(CommentBO commentBO);

    /**
     * 更新评论
     */
    void updateComment(Comment comment);

    /**
     * 查询视频评论列表
     */
    TableDataInfo<CommentVO> queryVlogComments(String vlogId, String userId, PageQuery pageQuery);

    /**
     * 分页查询评论，只查一级评论
     */
    Page<CommentVO> pageComment(Page<Comment> page, CommentBO bo);

    /**
     * 获取子评论VO列表
     */
    List<ChildCommentVO> getChildCommentVOs(String fatherCommentId);

    /**
     * 获取子评论VO列表（分页）
     */
    Page<ChildCommentVO> getChildCommentVOsPaged(String fatherCommentId, long current, long size);

    /**
     * 下架评论（status=2）
     */
    void offlineComment(String commentId, String username);



    /**
     * 发布评论
     */
    void publishComment(CommentBO bo);
}
