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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.CurrentUser;
import com.yida.data.common.core.entity.program.EduSmallProgram;
import com.yida.data.school.dto.program.SmallProgramSaveDTO;
import com.yida.data.school.dto.program.SmallProgramSelectPageDTO;
import com.yida.data.school.vo.program.ListSmallProgramDeptVO;
import com.yida.data.school.vo.program.ProgramConfigDTO;
import com.yida.data.school.vo.program.SmallProgramInfoVO;
import com.yida.data.school.vo.program.SmallProgramSelectPageVO;

import java.util.List;

/**
 * 小程序表 Service接口
 *
 * @author ZYJ
 * @date 2021-12-10 13:44:31
 */
public interface EduSmallProgramService extends IService<EduSmallProgram> {

    /**
     * 查询小程序列表数据
     *
     * @param smallProgramSelectPageDTO 小程序后台列表请求类
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.yida.data.school.vo.program.SmallProgramSelectPageVO>
     * @author ZYJ
     * @date 2021/12/10 14:04
     */
    IPage<EduSmallProgram> listSmallProgramPage(SmallProgramSelectPageDTO smallProgramSelectPageDTO,CurrentUser currentUser);

    /**
     * 根据小程序id查询小程序详情
     *
     * @param smallProgramId 小程序id
     * @return com.yida.data.school.vo.program.SmallProgramInfoVO
     * @author ZYJ
     * @date 2021/12/10 14:32
     */
    SmallProgramInfoVO getSmallProgramInfo(Long smallProgramId);

    /**
     * 保存小程序数据
     *
     * @param smallProgramSaveDTO 保存小程序请求类
     * @author ZYJ
     * @date 2021/12/10 15:19
     */
    void saveSmallProgram(SmallProgramSaveDTO smallProgramSaveDTO,CurrentUser currentUser);

    /**
     * 批量删除小程序数据
     *
     * @param smallProgramIds 小程序id集合
     * @author ZYJ
     * @date 2021/12/10 17:50
     */
    void deleteSmallProgramBatch(List<Long> smallProgramIds, CurrentUser currentUser);

    /**
     * 查询所有栏目
     * @return
     */
    List<ListSmallProgramDeptVO> listSmallProgramDept();

    void setProgramConfig(ProgramConfigDTO config,CurrentUser currentUser);
}
