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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.atlas.CoreAtlasManagementDetails;
import com.yida.data.school.dto.atlas.AtlasDetailsSaveDTO;
import com.yida.data.school.dto.atlas.AtlasDetailsSelectPageDTO;
import com.yida.data.school.dto.atlas.app.AppAtlasWorkListDTO;
import com.yida.data.school.vo.atlas.AtlasDetailsSelectPageVO;
import com.yida.data.school.vo.atlas.AtlasDetailsVO;
import com.yida.data.school.vo.atlas.app.AppAtlasWorkBaseVO;

import java.util.List;

/**
 * 学校图集作品管理service层
 *
 * @author ZYJ
 * @date 2021/9/2
 */
public interface CoreAtlasManagementDetailsService extends IService<CoreAtlasManagementDetails> {

    /**
     * 查询图集作品列表数据
     *
     * @param atlasDetailsSelectPageDTO 图集作品后台列表请求类
     * @return com.yida.data.common.core.common.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < com.yida.data.atlas.vo.AtlasDetailsSelectPageVO>>
     * @author ZYJ
     * @date 2021/9/2 11:11
     */
    ResultBean<IPage<AtlasDetailsSelectPageVO>> listAtlasDetailsPage(AtlasDetailsSelectPageDTO atlasDetailsSelectPageDTO);

    /**
     * 保存图集作品数据
     *
     * @param list 保存图集作品请求类集合
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/2 13:33
     */
    ResultBean<String> saveAtlasDetails(List<AtlasDetailsSaveDTO> list);

    /**
     * 获取图集作品数据
     *
     * @param atlasDetailsId 图集作品id
     * @return com.yida.data.common.core.common.ResultBean<com.yida.data.atlas.vo.AtlasDetailsVO>
     * @author ZYJ
     * @date 2021/9/2 13:49
     */
    ResultBean<AtlasDetailsVO> getAtlasDetailsInfo(Long atlasDetailsId);

    /**
     * 批量删除图集作品
     *
     * @param ids 数据id集合
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/2 13:56
     */
    ResultBean<String> deleteAtlasDetailsBatch(Long[] ids);

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