package ink.wgink.module.article.service.content;

import ink.wgink.interfaces.article.IArticleCheckService;
import ink.wgink.module.article.pojo.dtos.content.ContentDTO;
import ink.wgink.module.article.pojo.vos.content.ContentVO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;

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

/**
 * @ClassName: IArticleContentService
 * @Description: 文章内容
 * @Author: WenG
 * @Date: 2020-04-03 15:37
 * @Version: 1.0
 **/
public interface IContentDataAuthService {

    /**
     * 文章内容列表
     *
     * @param params
     * @return
     */
    List<ContentDTO> list(Map<String, Object> params);

    /**
     * 文章内容列表
     *
     * @param categoryId 目录ID
     * @return
     */
    List<ContentDTO> list(String categoryId);

    /**
     * 文章列表
     *
     * @param userId 用户ID
     * @return
     */
    List<ContentDTO> listByUserId(String userId);

    /**
     * 文章列表
     *
     * @param userIds 用户ID列表
     * @return
     */
    List<ContentDTO> listByUserIds(List<String> userIds);

    /**
     * 文章列表
     *
     * @param categoryId 目录ID
     * @param userId     用户ID
     * @return
     */
    List<ContentDTO> listByUserId(String categoryId, String userId);

    /**
     * 文章列表
     *
     * @param categoryId 目录ID
     * @param userIds    用户ID列表
     * @return
     */
    List<ContentDTO> listByUserIds(String categoryId, List<String> userIds);

    /**
     * 文章内容分页列表
     *
     * @param page
     * @return
     */
    SuccessResultList<List<ContentDTO>> listPage(ListPage page);

    /**
     * 文章内容分页
     *
     * @param categoryId
     * @param page
     * @return
     */
    SuccessResultList<List<ContentDTO>> listPage(String categoryId, ListPage page);

    /**
     * 文章内容分页
     *
     * @param categoryId
     * @param userId
     * @param page
     * @return
     */
    SuccessResultList<List<ContentDTO>> listPageByUserId(String categoryId, String userId, ListPage page);

    /**
     * 文章内容分页
     *
     * @param categoryId
     * @param userIds
     * @param page
     * @return
     */
    SuccessResultList<List<ContentDTO>> listPageByUserIds(String categoryId, List<String> userIds, ListPage page);

}
