package com.galaxis.manatee.manager;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.galaxis.manatee.entity.chuanyun.*;

import java.util.List;

/**
 * @author zcj
 * @version 0.1
 * @date 2020/1/9 11:57 下午
 */
public interface ChuanYunManager {

    /**
     * 查询单条数据
     *
     * @param schemaCode  表单编码
     * @param bizObjectId 数据Id
     * @param <T>         查询数据类型
     * @return 单条数据返回结果
     */
    <T> ChuanyunFindResponse<T> find(String schemaCode, String bizObjectId);

    /**
     * 根据filter批量查询
     *
     * @param schemaCode 表单编码
     * @param filter     查询条件
     * @param <T>        查询数据类型
     * @throws JsonProcessingException 抛出异常
     * @return 批量返回结果
     */
    <T> ChuanyunFindAllResponse<T> findAll(String schemaCode, Filter filter) throws JsonProcessingException;

    /**
     * 保存
     *
     * @param isSubmit   是否为提交状态
     * @param schemaCode 表单编码
     * @param bizObject  数据字符串
     * @return 保存结果
     */
    ChuanyunSaveResponse save(String schemaCode, String bizObject, Boolean isSubmit);

    /**
     * 批量保存
     * @param isSubmit       是否直接提交
     * @param schemaCode     表单编码
     * @param bizObjectArray 数据字符串
     * @return 保存结果
     */
    ChuanyunSaveAllResponse saveAll(String schemaCode, List<String> bizObjectArray, Boolean isSubmit);
}
