package cn.com.tenlion.configtable.service.configtableoperation;

import cn.com.tenlion.configtable.pojo.dtos.configtable.ConfigTableDTO;
import cn.com.tenlion.configtable.pojo.dtos.configtableoperation.ConfigTableOperationDTO;
import cn.com.tenlion.configtable.pojo.dtos.configtableoperation.ConfigTableOperationGroupDTO;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: IConfigTableOperationService
 * @Description: 
 * @Author: CodeFactory
 * @Date: 2021-06-24 10:59:30
 * @Version: 3.0
 **/
public interface IConfigTableOperationService {

    /**
     * 删除数据
     * @param configTableId 配置表单ID
     * @param uid 表单主键
     * @return
     */
    void deleteDataById(String token, String configTableId, String uid);

    /**
     * 删除数据
     * @param configTableNumber 配置表单编码
     * @param uid 配置表单编码
     * @return
     */
    void deleteDataByNumber(String token, String configTableNumber, String uid);

    /**
     * 新增数据
     * @param configTableId 配置表单ID
     * @param param 表单字段
     * @return
     */
    String saveDataById(String token, String configTableId, Map<String, Object> param);

    /**
     * 新增数据
     * @param configTableNumber 配置表单编码
     * @param param 表单字段
     * @return
     */
    String saveDataByNumber(String token, String configTableNumber, Map<String, Object> param);

    /**
     * 通过uid查询详情数据
     * @param token
     * @param configTableId
     * @param uid
     * @return
     */
    ConfigTableOperationGroupDTO getData(String token, String configTableId, String uid);

    /**
     * 通过token查询动态表单中某人员列表数据
     * @param token
     * @param configTableId
     * @param params
     * @return
     */
    List<ConfigTableOperationGroupDTO> listMyData(String token, String configTableId, Map<String, Object> params);

    /**
     * 获得动态表单字段列表
     * @param token
     * @param configTableId
     * @return
     */
    List<ConfigTableOperationDTO> listFieldConfig(String token, String configTableId);

    /**
     * 查询动态表
     * @param configTableId
     * @return
     */
    ConfigTableDTO getTable(String configTableId);
}