package com.emotion.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.emotion.common.PageResult;
import com.emotion.dto.request.DiaryCommentCreateRequest;
import com.emotion.dto.request.DiaryCommentPageRequest;
import com.emotion.dto.response.DiaryCommentResponse;
import com.emotion.entity.DiaryComment;

import java.util.List;

/**
 * 日记评论服务接口
 * 
 * @author huazhongmin
 * @date 2025-07-23
 */
public interface DiaryCommentService extends IService<DiaryComment> {
    
    /**
     * 分页查询评论
     */
    PageResult<DiaryCommentResponse> getPageWithResponse(DiaryCommentPageRequest request);

    /**
     * 根据ID获取评论响应
     */
    DiaryCommentResponse getCommentResponseById(String id);

    /**
     * 获取评论树结构响应
     */
    List<DiaryCommentResponse> getCommentTreeWithResponse(String diaryId);

    /**
     * 创建评论并返回响应对象
     */
    DiaryCommentResponse createCommentWithResponse(DiaryCommentCreateRequest request);

    /**
     * 更新评论并返回响应对象
     */
    DiaryCommentResponse updateCommentWithResponse(DiaryCommentCreateRequest request);

    /**
     * 删除评论
     */
    boolean deleteComment(String commentId);
    
    /**
     * 软删除评论
     */
    boolean softDeleteComment(String commentId);
    
    /**
     * 恢复评论
     */
    boolean restoreComment(String commentId);
    
    /**
     * 增加点赞数
     */
    boolean incrementLikeCount(String commentId);
    
    /**
     * 减少点赞数
     */
    boolean decrementLikeCount(String commentId);
    
    /**
     * 设置置顶状态
     */
    boolean setTop(String commentId, Integer isTop);
}