package com.microservices.cms.doc.service;

import com.alibaba.fastjson2.JSONObject;
import com.microservices.cms.doc.domain.CmsDoc;
import com.microservices.cms.doc.domain.CmsDocCommentInputDto;
import com.microservices.cms.doc.domain.CmsDocCommentUpdateDto;

/**
 * 文章评论Service接口
 *
 * @author otto
 * @date 2023-11-28
 */
public interface ICmsDocCommentService {

    /**
     * 在文章下添加评论
     *
     * @param docId                 文章ID
     * @param cmsDocCommentInputDto 文章评论输入对象
     * @return 评论详情
     */
    JSONObject addCmsDocComment(Long docId, CmsDocCommentInputDto cmsDocCommentInputDto);

    /**
     * 获取文章下评论列表
     *
     * @param docId 文章Id
     * @param page
     * @param limit
     * @return 评论列表
     */
    JSONObject getCommentList(Long docId, Integer page, Integer limit);

    /**
     * 删除文章下评论
     *
     * @param docId     文章ID
     * @param journalId 评论ID
     * @return 结果
     */
    JSONObject removeComment(Long docId, Long journalId);

    /**
     * 更新文章下评论
     *
     * @param docId                  文章Id
     * @param journalId              评论Id
     * @param cmsDocCommentUpdateDto 评论更新对象
     * @return 结果
     */
    JSONObject editComment(Long docId, Long journalId, CmsDocCommentUpdateDto cmsDocCommentUpdateDto);

    /**
     * 根据文章id删除评论对应Issue
     *
     * @param docId 文章Id
     */
    void deleteCommentIssueByDocId(CmsDoc cmsDoc);
}
