package com.yida.data.school.atlas.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.school.dto.atlas.app.AppAtlasInfoDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkCommentReplySaveDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkCommentReplySelectDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkCommentSaveDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkCommentSelectDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkInfoDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkLikeDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkListDTO;
import com.yida.data.school.vo.atlas.AtlasSelectPageVO;
import com.yida.data.school.vo.atlas.app.AppAtlasInfoVO;
import com.yida.data.school.vo.atlas.app.AppAtlasWorkBaseVO;
import com.yida.data.school.vo.atlas.app.AppAtlasWorkCommentPageVO;
import com.yida.data.school.vo.atlas.app.AppAtlasWorkCommentReplyPageVO;

/**
 * 学校图集app接口service层
 *
 * @author ZYJ
 * @date 2021/9/2
 */
public interface AppAtlasService {

    /**
     * 查询图集分页数据接口
     *
     * @param schoolId 学校id
     * @param pageNo   当前页码
     * @param pageSize 页面大小
     * @return com.yida.data.common.core.common.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < com.yida.data.atlas.vo.AtlasSelectPageVO>>
     * @author ZYJ
     * @date 2021/9/2 17:42
     */
    ResultBean<IPage<AtlasSelectPageVO>> listAtlasPage(Long schoolId, Integer pageNo, Integer pageSize);

    /**
     * 获取图集详情接口
     *
     * @param appAtlasInfoDTO app获取图集详情接口请求类
     * @return com.yida.data.common.core.common.ResultBean<com.yida.data.atlas.vo.app.AppAtlasInfoVO>
     * @author ZYJ
     * @date 2021/9/6 10:59
     */
    ResultBean<AppAtlasInfoVO> getAtlasInfo(AppAtlasInfoDTO appAtlasInfoDTO);

    /**
     * 根据类型查询图集作品分页数据接口
     *
     * @param appAtlasWorkListDTO app根据类型查询图集作品分页数据请求类
     * @return com.yida.data.common.core.common.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < com.yida.data.atlas.vo.app.AppAtlasWorkBaseVO>>
     * @author ZYJ
     * @date 2021/9/6 17:29
     */
    ResultBean<IPage<AppAtlasWorkBaseVO>> listAtlasWorkByType(AppAtlasWorkListDTO appAtlasWorkListDTO);

    /**
     * 获取图集作品作品详情接口
     *
     * @param appAtlasWorkInfoDTO app获取图集作品详情接口请求类
     * @return com.yida.data.common.core.common.ResultBean<com.yida.data.atlas.vo.app.AppAtlasWorkBaseVO>
     * @author ZYJ
     * @date 2021/9/6 17:46
     */
    ResultBean<AppAtlasWorkBaseVO> getAtlasWorkInfo(AppAtlasWorkInfoDTO appAtlasWorkInfoDTO);

    /**
     * 图集作品点赞接口
     *
     * @param appAtlasWorkLikeDTO app图集作品点赞接口请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/7 9:51
     */
    ResultBean<String> likeAtlasWork(AppAtlasWorkLikeDTO appAtlasWorkLikeDTO);

    /**
     * 图集作品取消点赞接口
     *
     * @param appAtlasWorkLikeDTO app图集作品点赞/取消点赞请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/7 15:56
     */
    ResultBean<String> cancelLikeAtlasWork(AppAtlasWorkLikeDTO appAtlasWorkLikeDTO);

    /**
     * app分页查询图集作品评论列表接口
     *
     * @param appAtlasWorkCommentSelectDTO app分页查询图集作品评论列表接口请求类
     * @return com.yida.data.common.core.common.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < com.yida.data.atlas.vo.app.AppAtlasWorkCommentPageVO>>
     * @author ZYJ
     * @date 2021/9/7 16:44
     */
    ResultBean<IPage<AppAtlasWorkCommentPageVO>> listAtlasWorkCommentPage(AppAtlasWorkCommentSelectDTO appAtlasWorkCommentSelectDTO);

    /**
     * app保存图集作品评论接口
     *
     * @param appAtlasWorkCommentSaveDTO app保存图集作品评论接口请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/7 17:00
     */
    ResultBean<String> saveAtlasWorkComment(AppAtlasWorkCommentSaveDTO appAtlasWorkCommentSaveDTO);

    /**
     * app分页查询评论回复列表接口
     *
     * @param appAtlasWorkCommentReplySelectDTO app分页查询评论回复列表接口请求类
     * @return com.yida.data.common.core.common.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < com.yida.data.atlas.vo.app.AppAtlasWorkCommentReplyPageVO>>
     * @author ZYJ
     * @date 2021/9/7 17:32
     */
    ResultBean<IPage<AppAtlasWorkCommentReplyPageVO>> listAtlasWorkCommentReplyPage(AppAtlasWorkCommentReplySelectDTO appAtlasWorkCommentReplySelectDTO);

    /**
     * app保存评论回复接口
     *
     * @param appAtlasWorkCommentReplySaveDTO app保存评论回复接口请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/7 17:37
     */
    ResultBean<String> saveAtlasWorkCommentReply(AppAtlasWorkCommentReplySaveDTO appAtlasWorkCommentReplySaveDTO);
}
