using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Services.Notification.Input; using NPP.SmartSchedue.Api.Contracts.Services.Notification.Output; namespace NPP.SmartSchedue.Api.Contracts.Services.Notification; /// /// 通知模板服务接口 /// 决策点7:模板通知,支持通知内容模板,可替换变量 /// public interface INotificationTemplateService { #region 模板渲染 /// /// 渲染通知模板 /// 支持变量替换,如:{变量名} /// /// 渲染模板输入参数 /// 渲染结果 Task RenderTemplateAsync(RenderTemplateInput input); #endregion #region 模板验证 /// /// 验证模板语法是否正确 /// /// 验证模板输入参数 /// 验证结果 Task ValidateTemplateAsync(ValidateTemplateInput input); #endregion #region 变量解析 /// /// 提取模板中的变量列表 /// /// 提取变量输入参数 /// 变量列表 Task ExtractVariablesAsync(ExtractVariablesInput input); #endregion #region 内置变量 /// /// 获取系统内置变量 /// /// 系统变量字典 Task GetSystemVariablesAsync(); /// /// 获取业务相关变量 /// /// 获取业务变量输入参数 /// 业务变量字典 Task GetBusinessVariablesAsync(GetBusinessVariablesInput input); #endregion #region 模板预定义 /// /// 获取预定义模板列表 /// /// 获取模板列表输入参数 /// 预定义模板列表 Task GetPredefinedTemplatesAsync(GetPredefinedTemplatesInput input); /// /// 获取指定预定义模板 /// /// 获取指定模板输入参数 /// 预定义模板 Task GetPredefinedTemplateAsync(GetPredefinedTemplateInput input); #endregion }