package com.pz.system.service;

import cn.hutool.core.bean.BeanUtil;
import com.pz.system.domain.Article;
import com.pz.system.domain.ArticleComment;
import com.pz.system.domain.UserAppreciate;
import com.pz.system.domain.UserCollect;
import com.pz.system.domain.bo.ArticleCommentBo;
import com.pz.system.domain.bo.UserAppreciateBo;
import com.pz.system.domain.bo.UserCollectBo;
import com.pz.system.domain.vo.ArticleVo;
import com.pz.system.domain.bo.ArticleBo;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 文章Service接口
 *
 * @author ruoyi
 * @date 2023-09-07
 */
public interface IArticleService {

    /**
     * 查询文章
     */
    ArticleVo queryById(Integer id);

    /**
     * 查询文章列表
     */
    TableDataInfo<ArticleVo> queryPageList(ArticleBo bo, PageQuery pageQuery);

    /**
     * 小程序文章列表(收藏、非收藏)
     */
    TableDataInfo<ArticleVo> queryPageListByApp(ArticleBo bo, PageQuery pageQuery);

    /**
     * 查询文章列表
     */
    List<ArticleVo> queryList(ArticleBo bo);
    /**
     * 新增点赞
     */
    Boolean insertByAppreciate(UserAppreciateBo bo);

    /**
     * 新增收藏
     */
    Boolean insertByCollect(UserCollectBo bo);

    /**
     * 新增评论
     */
   Boolean insertByComment(ArticleCommentBo bo);
    /**
     * 新增文章
     */
    Boolean insertByBo(ArticleBo bo);

    /**
     * 修改文章
     */
    Boolean updateByBo(ArticleBo bo);

    /**
     * 校验并批量删除文章信息
     */
    Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
}