package jnpf.cultivate.service;

import jnpf.base.service.SuperService;
import jnpf.model.cultivate.dto.gained.FtbGainedPagination;
import jnpf.model.cultivate.dto.gained.FtbGainedQueryDto;
import jnpf.model.cultivate.po.gained.FtbCourseGainedEntity;
import jnpf.model.cultivate.vo.gained.FtbChapterEndGainedVO;
import jnpf.model.cultivate.vo.gained.FtbGroupGainedVO;

import java.util.List;

/**
 *
 * 心得体会 服务类
 *
 */
public interface FtbCourseGainedService extends SuperService<FtbCourseGainedEntity> {
        /**
         * 列表查询
         * @param pagination 列表参数
         * @return 分页结果
         */
        List<FtbCourseGainedEntity> getList(FtbGainedPagination pagination);

        /**
         * 获取章节结束心得列表
         * @param chapterId
         * @return
         */
        @Deprecated
        List<FtbChapterEndGainedVO> getGainedListOfChapterEnd(String chapterId);

        /**
         * 详情
         * @param id id
         * @return 结果
         */
        FtbCourseGainedEntity getInfo(String id);

        /**
         * 新增
         * @param entity 实体
         */
        void create(FtbCourseGainedEntity entity);

        /**
         * 更新
         * @param id 主键
         * @param entity 实体
         */
        void update(String id, FtbCourseGainedEntity entity);

        /**
         * 删除
         * @param entity 实体
         */
        void delete(FtbCourseGainedEntity entity);

        /**
         * 列表查询
         * @param queryDto 列表参数
         * @return 分页结果
         */
        List<FtbCourseGainedEntity> list(FtbGainedQueryDto queryDto);

        /**
         * 根据一组给定的ID获取奖励详情
         *
         * @param gainedIds 需要查询的奖励ID列表这些ID唯一标识了系统中的奖励记录
         * @return 返回一个FtbGroupGainedVO对象的列表，包含了每个ID对应的奖励详细信息
         *
         * 该方法主要用于根据奖励ID获取详细的奖励信息，避免了多次单独查询的效率问题，
         * 通过一次性查询多个ID，提高了数据检索的效率
         */
        List<FtbGroupGainedVO> getGainedDetailByIds(List<String> gainedIds);

//        void sharingSquare(FtbCourseGainedEntity gainedEntity);
}