package shop.alien.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import shop.alien.entity.store.ReviewComment;
import shop.alien.entity.store.vo.ReviewCommentVo;

import java.util.List;

/**
 * 评价评论 Mapper 接口
 *
 * @author system
 * @since 2025-01-XX
 */
@Mapper
public interface ReviewCommentMapper extends BaseMapper<ReviewComment> {

    /**
     * 根据评价ID查询评论列表（包含用户信息）
     *
     * @param reviewId 评价ID
     * @param currentUserId 当前用户ID（用于判断是否已点赞，可为null）
     * @return 评论列表
     */
    List<ReviewCommentVo> getCommentListByReviewId(@Param("reviewId") Integer reviewId, @Param("currentUserId") Integer currentUserId);

    /**
     * 根据评价ID查询评论数量（只统计首评论）
     *
     * @param reviewId 评价ID
     * @return 评论数量
     */
    Integer getCommentCountByReviewId(@Param("reviewId") Integer reviewId);

    /**
     * 根据评价ID查询总评论数量（包括首评论和子评论）
     *
     * @param reviewId 评价ID
     * @return 总评论数量
     */
    Integer getTotalCommentCountByReviewId(@Param("reviewId") Integer reviewId);

    /**
     * 根据首评ID查询回复列表（包含用户信息）
     *
     * @param headId 首评ID
     * @param currentUserId 当前用户ID（用于判断是否已点赞，可为null）
     * @return 回复列表
     */
    List<ReviewCommentVo> getReplyListByHeadId(@Param("headId") Integer headId, @Param("currentUserId") Integer currentUserId);
}

