using e_suite.Workflow.Core.Attributes; using e_suite.Workflow.Core.Enums; using eSuite.Core.Miscellaneous; namespace e_suite.Workflow.Core.Interfaces; public interface IWorkflowVersion : IStage { /// /// Client domain to which the workflow belongs. /// IGeneralIdRef Domain { get; set; } //todo Move this out to runtime only. /// /// Current state of the workflow, see WorkflowState for details of the various states. /// [RuntimeOnly] WorkflowState CurrentState { get; set; } string ActivityNameTemplate { get; set; } /// /// Description of the workflow /// string Description { get; set; } //Todo can only be on a run-time instance ///// ///// If the workflow has been paused, will be true. ///// //bool Paused { get; } ///// ///// Called when the task status has been progressed from Pending to Active. ///// ///// Note: You can use this method to set the TaskStatus to ReadyToComplete if there is no manual processing needed for this task. ///// After this method is completed, the TaskStatus must be either Active or ReadyToComplete. ///// ///// //Task OnActivateAsync(); ///// ///// Called when the task status has been progressed from ReadyToComplete to Completed ///// When this method is completed the state must be either Active, or Completed. ///// ///// //Task OnCompleteAsync(); }