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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.atlas.CoreAtlasManagement;
import com.yida.data.school.dto.atlas.AtlasSaveDTO;
import com.yida.data.school.dto.atlas.AtlasSelectPageDTO;
import com.yida.data.school.vo.atlas.AtlasDetailVO;
import com.yida.data.school.vo.atlas.AtlasSelectPageVO;

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

    /**
     * 查询图集列表数据
     *
     * @param atlasSelectPageDTO 图集后台列表请求类
     * @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 11:11
     */
    ResultBean<IPage<AtlasSelectPageVO>> listAtlasPage(AtlasSelectPageDTO atlasSelectPageDTO);

    /**
     * 保存图集数据
     *
     * @param atlasSaveDTO 保存图集请求类
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/2 13:33
     */
    ResultBean<String> saveAtlas(AtlasSaveDTO atlasSaveDTO);

    /**
     * 获取图集详情
     *
     * @param atlasId 图集id
     * @return com.yida.data.common.core.common.ResultBean<com.yida.data.atlas.vo.AtlasDetailVO>
     * @author ZYJ
     * @date 2021/9/2 13:49
     */
    ResultBean<AtlasDetailVO> getAtlasInfo(Long atlasId);

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

    /**
     * 启用或停用图集
     *
     * @param atlasId      图集id
     * @param enableStatus 需要设置的启用或停用状态
     * @return com.yida.data.common.core.common.ResultBean<java.lang.String>
     * @author ZYJ
     * @date 2021/9/2 14:35
     */
    ResultBean<String> updateEnableStatus(Long atlasId, Integer enableStatus);
}
