package com.ruoyi.system.service;

import com.ruoyi.system.entity.CommonEntity;
import com.ruoyi.system.entity.DragTableGroup;
import com.ruoyi.system.entity.vo.DragTableGroupVo;

import java.util.HashMap;
import java.util.List;

/**
 * @author hmc
 * @date 2023-11-01 14:26
 * @Description:
 */
public interface IDragTableGroupService {

    /**
     * 查询拖拽格组
     *
     * @param id 拖拽格组主键
     * @return 拖拽格组
     */
    public DragTableGroup selectDragTableGroupById(Long id);

    /**
     * 查询拖拽格组列表
     *
     * @param dragTableGroup 拖拽格组
     * @return 拖拽格组集合
     */
    public List<DragTableGroup> selectDragTableGroupList(DragTableGroup dragTableGroup);

    /**
     * 新增拖拽格组
     *
     * @param dragTableGroupVo 拖拽格组
     * @return 结果
     */
    public int insertDragTableGroup(DragTableGroupVo dragTableGroupVo);

    /**
     * 新增拖拽配置组
     * @param dragTableGroupVo
     * @return
     */
    public int insertDragTableConfigurationGroup(DragTableGroupVo dragTableGroupVo);

    /**
     * 修改拖拽格组
     *
     * @param dragTableGroupVo 拖拽格组
     * @return 结果
     */
    public int updateDragTableGroup(DragTableGroupVo dragTableGroupVo);

    /**
     * 修改配置组
     *
     * @param dragTableGroupVo 拖拽格组
     * @return 结果
     */
    public int editConfigurationGroup(DragTableGroupVo dragTableGroupVo);


    /**
     * 批量删除拖拽格组
     *
     * @param ids 需要删除的拖拽格组主键集合
     * @return 结果
     */
    public int deleteDragTableGroupByIds(Long[] ids);

    /**
     * 根据表格组key查询表格组信息
     * @param groupKey
     * @return
     */
    public String selectDragTableGroup(String groupKey);

    /**
     * 查询表格组包含的详细信息
     * @param dragTableGroup
     * @return
     */
    DragTableGroupVo selectDragTableGroupListDetail(DragTableGroup dragTableGroup);

    /**
     * 查询当前组下是否包含有表格信息
     */
    Boolean selectDragTableGroupTableListSize(Long[] ids);


    /**
     * 弹窗查询表格结构信息
     * @param commonEntity
     * @return
     */
    CommonEntity getProcessPopupTableInfo(CommonEntity commonEntity);


    /**
     * 弹窗查询表格数据信息
     * @param commonEntity
     * @return
     */
    CommonEntity getProcessPopupTableList(CommonEntity commonEntity);

    /**
     * 查询拖拽表格组
     * @param groupKey
     * @return
     */
    DragTableGroup selectDragTableGroupInfoByGroupKey(String groupKey);

}
