package cn.fateverse.query.service;

import cn.fateverse.query.entity.dto.DynamicEchartsDto;
import cn.fateverse.query.entity.vo.DynamicEchartsVo;
import cn.fateverse.query.entity.query.DynamicEchartsQuery;
import cn.fateverse.common.core.entity.Option;
import cn.fateverse.common.core.result.page.TableDataInfo;

import java.util.List;

/**
 * 动态echarts图表 Service
 *
 * @author clay
 * @date 2023-11-16
 */
public interface DynamicEchartsService {

    /**
     * 查询动态echarts图表
     *
     * @param echartsId 动态echarts图表Id
     * @return 动态echarts图表
     */
    DynamicEchartsVo searchById(Long echartsId);

    /**
     * 查询动态echarts图表列表
     *
     * @param query 动态echarts图表
     * @return 动态echarts图表集合
     */
    TableDataInfo<DynamicEchartsVo> searchList(DynamicEchartsQuery query);

    /**
     * 查询动态echarts图表option
     *
     * @return 选项集合
     */
    List<Option> searchOptionList();

    /**
    * 导出动态echarts图表列表
     *
     * @param query query 动态echarts图表
     * @return 动态echarts图表集合
    */
    List<DynamicEchartsVo> exportList(DynamicEchartsQuery query);

    /**
     * 新增动态echarts图表
     *
     * @param dynamicEcharts 动态echarts图表
     * @return 结果
     */
    int save(DynamicEchartsDto dynamicEcharts);

    /**
     * 修改动态echarts图表
     *
     * @param dynamicEcharts 动态echarts图表
     * @return 结果
     */
    int edit(DynamicEchartsDto dynamicEcharts);

    /**
     * 删除动态echarts图表
     *
     * @param echartsId 需要删除的动态echarts图表Id
     * @return 结果
     */
    int removeById(Long echartsId);

    /**
     * 批量删除动态echarts图表
     *
     * @param echartsIdList 需要删除的动态echarts图表Id 集合
     * @return 结果
     */
    int removeBatch(List<Long> echartsIdList);

}