package com.yonge.cooleshow.bbs.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.auth.api.entity.SysUser;
import com.yonge.cooleshow.bbs.dto.search.BbsReplySearch;
import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
import com.yonge.cooleshow.bbs.entity.BbsArticle;
import com.yonge.cooleshow.bbs.vo.BbsReplyVo;

import java.util.List;
import java.util.Map;

/**
 * 文章 服务类
 *
 * @author liweifan
 * @date 2022-06-09
 */
public interface BbsArticleService extends IService<BbsArticle> {
    /**
     * 详情-发布文章
     *
     * @param bbsArticle
     */
    void addArticle(BbsArticle bbsArticle);

    /**
     * 详情-修改文章
     *
     * @param bbsArticle
     */
    void updateArticle(BbsArticle bbsArticle, Long userId);

    /**
     * 详情-删除文章
     *
     * @param ids
     * @param user
     */
    void deleteArticle(Map<String, List<Long>> ids, SysUser user);

    /**
     * 后台管理-置顶文章
     *
     * @param article
     */
    void articleTop(BbsArticle article);

    /**
     * 分页查询
     *
     * @author liweifan
     * @date 2022-06-09
     */
    IPage<BbsArticleVo> selectPage(IPage<BbsArticleVo> page, BbsArticleSearch query);

    /**
     * 查询详情
     *
     * @param articleId
     * @return
     */
    BbsArticleVo articleInfo(Long articleId);

    IPage<BbsReplyVo> articleReply(IPage<BbsReplyVo> page, BbsReplySearch query);
}