namespace Hotline.FlowEngine.WorkflowModules;

public class WorkflowModuleConsts
{
    /// <summary>
    /// 工单办理
    /// </summary>
    public const string OrderHandle = "OrderHandle";

    /// <summary>
    /// 工单退回（依据配置决定退回可能需要流程审批）
    /// </summary>
    public const string OrderPrevious = "OrderPrevious";

    /// <summary>
    /// 工单延期
    /// 1.中心用户、部门用户对工单进行延期申请 2.二级部门发起延期需要对应一级部门审批，一级部门发起延期需要中心审批
    /// </summary>
    public const string OrderDelay = "OrderDelay";

    /// <summary>
    /// 省工单延期
    /// </summary>
    public const string OrderDelayProvince = "OrderDelayProvince";

    /// <summary>
    /// 工单甄别
    /// 被回访部门或其一级部门发起不满意工单进行申诉
    /// </summary>
    public const string OrderScreen = "OrderScreen";

    /// <summary>
    /// 新增知识审批
    /// </summary>
    public const string KnowledgeAdd = "AddKnowledgeAsync";

    /// <summary>
    /// 知识更新
    /// </summary>
    public const string KnowledgeUpdate = "KnowledgeUpdate";

    /// <summary>
    /// 知识下架
    /// </summary>
    public const string KnowledgeOffshelf = "KnowledgeOffshelf";

	/// <summary>
	/// 知识删除
	/// </summary>
	public const string KnowledgeDelete = "KnowledgeDelete";

    /// <summary>
    /// 分机小休申请
    /// </summary>
    public const string TelRestApply = "TelRestApply";

    /// <summary>
    /// 工单终止
    /// </summary>
    public const string OrderTerminate = "OrderTerminate";

    /// <summary>
    /// 二次办理
    /// </summary>
    public const string OrderSecondaryHandling = "OrderSecondaryHandling";

    /// <summary>
    /// 随手拍工单办理流程
    /// </summary>
    public const string OrderHandleSnapshot = "OrderHandleSnapshot";


    public static List<WorkflowModule> AllModules =>
        new()
        {
            new(OrderHandle, "工单办理"),
            new(KnowledgeAdd, "新增知识"),
            new(KnowledgeUpdate, "知识更新"),
            new(KnowledgeOffshelf,"知识下架"),
            new(KnowledgeDelete, "知识删除"),
            new(TelRestApply, "分机小休申请"),
            new(OrderDelay,"工单延期"),
            new(OrderPrevious,"工单退回"),
            new(OrderScreen,"工单甄别"),
            new(OrderTerminate,"工单终止"),
        };
}