using Myshipping.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
///
/// 服务流程
///
public interface IServiceWorkFlowBaseService
{
///
/// 保存
///
/// 服务流程详情
/// 返回回执
Task Save(ServiceWorkFlowBaseDto info);
///
/// 保存并启用
///
/// 服务流程详情
/// 返回回执
Task SaveAndEnable(ServiceWorkFlowBaseDto info);
///
/// 启用
///
/// 服务流程主键数组
/// 返回回执
Task SetEnable(string[] pkIds);
///
/// 取消启用
///
/// 服务流程主键数组
/// 返回回执
Task SetUnEnable(string[] pkIds);
///
/// 删除
///
/// 服务流程主键数组
/// 返回回执
Task Delete(string[] pkIds);
///
/// 复制
///
/// 服务流程主键
/// 返回回执
Task Copy(string pkId);
///
/// 获取服务流程详情
///
/// 服务流程主键
/// 返回回执
Task GetInfo(string pkId);
///
/// 检索服务流程列表
///
/// 检索值
/// 最大返回行数(默认15)
/// 返回回执
Task QueryList(string queryItem, int topNum = 15);
///
/// 服务流程台账查询
///
/// 服务流程台账查询请求
/// 返回结果
Task> GetPageAsync(QueryServiceWorkFlowBaseDto QuerySearch);
///
/// 发布服务流程
///
/// 服务流程主键数组
/// 返回回执
Task PublishRelease(string[] pkIds);
///
/// 获取展示服务流程时间轴列表
///
/// 服务流程主键
/// 返回回执
Task GetShowTimeLine(string pkId);
///
/// 保存服务流程活动
///
/// 保存服务流程活动详情
/// 返回回执
Task SaveWFActivities(ServiceWorkFlowActivitiesDto info);
///
/// 通过服务活动主键获取所有相关服务流程列表
///
/// 服务活动主键数组
/// 返回回执
Task GetServiceWorkFlowListByActivities(string[] activitiesArgs);
///
/// 检索服务流程活动列表
///
/// 检索值
/// 最大返回行数(默认15)
/// 返回回执
Task QueryActivitiesList(string queryItem, int topNum = 15);
///
/// 检索可用的服务项目列表
///
/// 租户ID
/// 是否不从缓存取值
/// 返回回执
Task> GetEnableProjectList(string tenantId, bool isAvoidCache = false);
///
/// 检索可用的服务项目和状态列表
///
/// 租户ID
/// 是否不从缓存取值
/// 返回回执
Task> GetEnableProjectWithStatusList(string tenantId, bool isAvoidCache = false);
///
/// 获取可用的服务项目字典列表
///
/// 是否重新加载缓存
///
Task> GetEnableProjectDictTreeList(bool isAvoidCache = false);
///
/// 获取可用的服务状态字典列表
///
/// 是否重新加载缓存
///
Task> GetEnableStatusDictTreeList(bool isAvoidCache = false);
}
}