using Hotline.FlowEngine.Definitions;
using Hotline.FlowEngine.Workflows;
using Hotline.Share.Dtos.FlowEngine;
using Hotline.Share.Enums.FlowEngine;
using MediatR;
namespace Hotline.FlowEngine.Notifications;
public record WorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto) : INotification;
public record StartWorkflowNotify(Workflow Workflow, BasicWorkflowDto Dto, FlowAssignInfo FlowAssignInfo, WorkflowTrace Trace) : WorkflowNotify(Workflow, Dto);
public record NextStepNotify(Workflow Workflow, BasicWorkflowDto Dto, FlowAssignInfo FlowAssignInfo, WorkflowTrace Trace,
StepDefine NextStepDefine, string HandlerOrgId, bool ExpiredTimeChanged) : WorkflowNotify(Workflow, Dto);
public record AcceptWorkflowNotify(Workflow Workflow) : INotification;
///
/// 会签汇总节点已指派(该汇总节点可以被接办/办理)
///
///
public record CountersignEndAssigned(Workflow Workflow) : INotification;
public record CountersignStartAssigned(Workflow Workflow) : INotification;
public record PreviousNotify(Workflow Workflow, WorkflowStep TargetStep, PreviousWorkflowDto Dto, bool IsOrgToCenter) : INotification;
public record RecallNotify(Workflow Workflow, WorkflowStep TargetStep, RecallDto Dto, bool IsOrgToCenter) : INotification;
public record JumpNotify(Workflow Workflow, WorkflowStep TargetStep, RecallDto Dto, FlowAssignInfo FlowAssignInfo, bool IsCenterToOrg, bool IsOrgToCenter) : INotification;
public record RedoNotify(Workflow Workflow, RecallDto Dto, bool IsOrgToCenter) : INotification;
/////
///// 否决(审批不通过)
/////
//public record RejectNotify(Workflow Workflow, BasicWorkflowDto Dto) : INotification;
public record EndWorkflowNotify(Workflow Workflow, WorkflowTrace Trace) : INotification;
public record TerminalWorkflowNotify(Workflow Workflow) : INotification;
///
/// 撤销
///
public record CancelWorkflowNotify(Workflow Workflow) : INotification;