using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MainShell.Common
{
    public static class WorkflowContextKeys
    {
        /// <summary>
        /// 用于传递 IEventAggregator 实例
        /// </summary>
        public const string EventAggregator = "EventAggregator";

        /// <summary>
        /// 用于传递请求令牌 (Guid)
        /// </summary>
        public const string RequestToken = "RequestToken";
        /// <summary>
        /// 当前配方
        /// </summary>
        public const string RecipeManager = "RecipeManager";
        /// <summary>
        /// 流程结果管理器 Key
        /// </summary>
        public const string ProcessResultManager = "ProcessResultManager";

        /// <summary>
        /// 恢复目标活动名称
        /// </summary>
        public const string ResumeTargetActivityName="ResumeTargetActivityName";

        /// <summary>
        /// 流程名称
        /// </summary>
        public const string WorkflowName = "WorkflowName";

        /// <summary>
        /// 当前步骤ID
        /// </summary>
        public const string CurrentStepId = "CurrentStepId";

        /// <summary>
        /// 下一步骤ID
        /// </summary>
        public const string NextStepId = "NextStepId";

        /// <summary>
        /// 流程路由配置
        /// </summary>
        public const string WorkflowRoutes = "WorkflowRoutes";

        /// <summary>
        /// 晶片转移路由
        /// </summary>
        public const string DieTransferRoute = "DieTransferRoute";

        /// <summary>
        /// 自动生产路由
        /// </summary>
        public const string AutoProductionRoute = "AutoProductionRoute";

        /// <summary>
        /// 流程运行时追踪器
        /// </summary>
        public const string WorkflowRuntimeTracker = "WorkflowRuntimeTracker";

        /// <summary>
        /// 流程失败消息
        /// </summary>
        public const string WorkflowFailureMessage = "WorkflowFailureMessage";

        /// <summary>
        /// 流程失败消息键
        /// </summary>
        public const string WorkflowFailureMessageKey = "WorkflowFailureMessageKey";

        /// <summary>
        /// 流程失败消息参数
        /// </summary>
        public const string WorkflowFailureMessageArguments = "WorkflowFailureMessageArguments";

        /// <summary>
        /// 准备区服务
        /// </summary>
        public const string PreparationAreaService = "PreparationAreaService";

        /// <summary>
        /// 当前晶片状态服务
        /// </summary>
        public const string CurrentChipStateService = "CurrentChipStateService";

        /// <summary>
        /// 自动生产运行时状态服务
        /// </summary>
        public const string AutoProductionRuntimeStateService = "AutoProductionRuntimeStateService";

        /// <summary>
        /// 准备区状态
        /// </summary>
        public const string PreparationAreaStatus = "PreparationAreaStatus";

        /// <summary>
        /// 当前晶片状态
        /// </summary>
        public const string CurrentChipState = "CurrentChipState";

        /// <summary>
        /// 基板处理状态
        /// </summary>
        public const string SubstrateProcessState = "SubstrateProcessState";

        /// <summary>
        /// 待加载晶片
        /// </summary>
        public const string PendingChipLoad = "PendingChipLoad";

        /// <summary>
        /// 当前基板待处理数量
        /// </summary>
        public const string CurrentSubstratePendingCount = "CurrentSubstratePendingCount";

        /// <summary>
        /// 当前基板已处理数量
        /// </summary>
        public const string CurrentSubstrateProcessedCount = "CurrentSubstrateProcessedCount";

        /// <summary>
        /// 当前晶片剩余数量
        /// </summary>
        public const string CurrentChipRemainingCount = "CurrentChipRemainingCount";

        /// <summary>
        /// 转移需要重新检查
        /// </summary>
        public const string TransferNeedsRecheck = "TransferNeedsRecheck";

        /// <summary>
        /// 转移晶片已耗尽
        /// </summary>
        public const string TransferChipExhausted = "TransferChipExhausted";

        /// <summary>
        /// 晶片转移决策结果
        /// </summary>
        public const string DieTransferDecisionResult = "DieTransferDecisionResult";

        /// <summary>
        /// 晶片转移路径生成请求
        /// </summary>
        public const string DieTransferPathRequest = "DieTransferPathRequest";

        /// <summary>
        /// 晶片转移路径生成结果
        /// </summary>
        public const string DieTransferPathPlan = "DieTransferPathPlan";

        /// <summary>
        /// 当前父级活动/子流程名称
        /// </summary>
        public const string ParentActivityName = "ParentActivityName";

        /// <summary>
        /// 针头Z对刀次数
        /// </summary>
        public const string NeedleZCalibrationTouchCount = "NeedleZCalibrationTouchCount";

        /// <summary>
        /// 针头Z对刀完成后是否自动抬高
        /// </summary>
        public const string NeedleZCalibrationAutoRaiseZ1 = "NeedleZCalibrationAutoRaiseZ1";

        /// <summary>
        /// 针头Z对刀取消令牌
        /// </summary>
        public const string NeedleZCalibrationCancellationToken = "NeedleZCalibrationCancellationToken";

        /// <summary>
        /// 针头Z对刀工作流请求数据
        /// </summary>
        public const string NeedleZCalibrationWorkflowData = "NeedleZCalibrationWorkflowData";

        /// <summary>
        /// 针头Z对刀结果集合
        /// </summary>
        public const string NeedleZCalibrationResults = "NeedleZCalibrationResults";

        /// <summary>
        /// 针头Z对刀最后一次结果
        /// </summary>
        public const string NeedleZCalibrationLastResult = "NeedleZCalibrationLastResult";

        /// <summary>
        /// 针头Z对刀平均结果
        /// </summary>
        public const string NeedleZCalibrationAverageResult = "NeedleZCalibrationAverageResult";

        /// <summary>
        /// 基板定位结果
        /// </summary>
        public const string SubstratePositionResult = "SubstratePositionResult";

        /// <summary>
        /// 芯片定位结果
        /// </summary>
        public const string DiePositionResult = "DiePositionResult";

        /// <summary>
        /// 芯片定位运行态上下文
        /// </summary>
        public const string DiePositionContext = "DiePositionContext";

        /// <summary>
        /// 芯片定位扫描规划结果
        /// </summary>
        public const string DiePositionScanPlan = "DiePositionScanPlan";

        /// <summary>
        /// 基板测高结果
        /// </summary>
        public const string SubstrateHeightMeasureResult = "SubstrateHeightMeasureResult";

        /// <summary>
        /// 精度复检结果
        /// </summary>
        public const string DieRecheckResult = "DieRecheckResult";

        /// <summary>
        /// 基板Mark识别服务
        /// </summary>
        public const string SubstrateMarkRecognitionService = "SubstrateMarkRecognitionService";
    }
}
