package com.fs.course.service;

import java.util.List;
import com.fs.course.domain.FsUserCourseComment;
import com.fs.course.param.FsUserCourseCommentParam;
import com.fs.course.param.FsUserCourseCommentUParam;
import com.fs.course.vo.FsUserCourseCommentListUVO;
import com.fs.course.vo.FsUserCourseCommentListVO;
import com.fs.course.vo.FsUserCourseCommentReplyListUVO;
import com.fs.course.vo.FsUserCourseCommentVO;

/**
 * 课堂评论Service接口
 *
 * @author fs
 * @date 2024-05-15
 */
public interface IFsUserCourseCommentService
{
    /**
     * 查询课堂评论
     *
     * @param commentId 课堂评论主键
     * @return 课堂评论
     */
    public FsUserCourseComment selectFsUserCourseCommentByCommentId(Long commentId);

    /**
     * 查询课堂评论列表
     *
     * @param fsUserCourseComment 课堂评论
     * @return 课堂评论集合
     */
    public List<FsUserCourseComment> selectFsUserCourseCommentList(FsUserCourseComment fsUserCourseComment);

    /**
     * 新增课堂评论
     *
     * @param fsUserCourseComment 课堂评论
     * @return 结果
     */
    public int insertFsUserCourseComment(FsUserCourseComment fsUserCourseComment);

    /**
     * 修改课堂评论
     *
     * @param fsUserCourseComment 课堂评论
     * @return 结果
     */
    public int updateFsUserCourseComment(FsUserCourseComment fsUserCourseComment);

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

    /**
     * 删除课堂评论信息
     *
     * @param commentId 课堂评论主键
     * @return 结果
     */
    public int deleteFsUserCourseCommentByCommentId(Long commentId);

    List<FsUserCourseCommentListVO> selectFsUserCourseCommentListVO(FsUserCourseCommentParam fsUserCourseComment);

    FsUserCourseCommentVO selectFsUserCourseCommentVOByCommentId(Long commentId);

    List<FsUserCourseCommentVO> selectFsUserCourseCommentAllListVO(Long pid);

    List<FsUserCourseCommentListUVO> selectFsUserCourseCommentListUVO(FsUserCourseCommentUParam param);

    List<FsUserCourseCommentReplyListUVO> selectFsUserCourseCommentReplyListUVO(Long commentId);

    List<FsUserCourseCommentListUVO> selectFsUserCourseCommentMyListUVO(Long userId);

    int updateLikes(Long commentId, Integer type);

    int addComment(Long parentId);
    int minusComment(Long parentId);
}
