using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Filter;
using JNPF.Systems.Entitys.System;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.WorkFlow.Entitys.Entity;
namespace JNPF.VisualDev.Interfaces;
///
/// 在线开发运行服务接口.
///
public interface IRunService
{
///
/// 创建在线开发功能.
///
/// 功能模板实体.
/// 数据输入.
///
Task Create(VisualDevEntity templateEntity, VisualDevModelDataCrInput dataInput);
///
/// 创建在线开发有表SQL.
///
///
///
///
///
Task>>> CreateHaveTableSql(VisualDevEntity templateEntity, VisualDevModelDataCrInput dataInput, string mainId);
///
/// 修改在线开发功能.
///
///
///
///
///
Task Update(string id, VisualDevEntity templateEntity, VisualDevModelDataUpInput visualdevModelDataUpForm);
///
/// 修改在线开发有表sql.
///
///
///
///
///
Task> UpdateHaveTableSql(VisualDevEntity templateEntity, VisualDevModelDataUpInput dataInput, string mainId);
///
/// 删除有表信息.
///
/// 主键.
/// 模板实体.
///
Task DelHaveTableInfo(string id, VisualDevEntity templateEntity);
///
/// 批量删除有表数据.
///
/// id数组.
/// 模板实体.
///
Task BatchDelHaveTableData(List ids, VisualDevEntity templateEntity);
///
/// 列表数据处理.
///
///
///
///
///
Task>> GetListResult(VisualDevEntity entity, VisualDevModelListQueryInput input, string actionType = "List");
///
/// 关联表单列表数据处理.
///
///
///
///
///
Task>> GetRelationFormList(VisualDevEntity entity, VisualDevModelListQueryInput input, string actionType = "List");
///
/// 获取模型数据信息.
///
///
///
Task GetInfo(string id);
///
/// 获取有表详情转换.
///
/// 主键.
/// 模板实体.
///
Task> GetHaveTableInfo(string id, VisualDevEntity templateEntity);
///
/// 获取有表详情转换.
///
///
///
///
/// modified by pf 2023-04-12 返回值不序列化
Task?> GetHaveTableInfoDetails(string id, VisualDevEntity templateEntity, bool isFlowTask = false);
///
/// 生成系统自动生成字段.
///
/// 模板数据.
/// 真实数据.
/// 创建与修改标识 true创建 false 修改.
///
Task> GenerateFeilds(string fieldsModelListJson, Dictionary allDataMap, bool IsCreate);
///
/// 获取数据库连接,根据linkId.
///
/// 数据库连接Id.
///
Task GetDbLink(string linkId);
///
/// 添加、修改 流程表单数据.
///
/// 表单模板.
/// 表单数据json.
/// 主键Id.
/// 是否修改.
///
Task SaveFlowFormData(FlowFormEntity fEntity, string formData, string dataId, bool isUpdate = false);
///
/// 获取流程表单数据解析详情.
///
/// 表单模板id.
/// 主键Id.
///
Task> GetFlowFormDataDetails(string fId, string dataId);
///
/// 流程表单数据传递.
///
/// 旧表单模板Id.
/// 传递表单模板Id.
/// 映射规则字段 : Key 原字段, Value 映射字段.
/// 表单数据.
/// 是否子流程.
Task> SaveDataToDataByFId(string oldFId, string newFId, List> mapRule, Dictionary formData, bool isSubFlow = false);
}