using e_suite.Database.Core.Models; using e_suite.Workflow.Core.Enums; using e_suite.Workflow.Core.Interfaces; using eSuite.Core.Miscellaneous; namespace e_suite.Workflow.Core; public class WorkflowTemplate: IGeneralId { public long Id { get; set; } public Guid Guid { get; set; } /// /// Name of the workflow as seen by users, must be unique. /// public required string Name { get; set; } } public class WorkflowVersion : IGeneralId, IWorkflowVersion { public long Id { get; set; } public Guid Guid { get; set; } public required WorkflowTemplate Template { get; set; } public required long Version { get; set; } public ICollection Tasks { get; } = []; //Serialise to Json. public required IGeneralIdRef Domain { get; set; } public WorkflowState CurrentState { get; set; } = WorkflowState.Pending; public required string ActivityNameTemplate { get; set; } public string Description { get; set; } = string.Empty; //Todo can only be on a run-time instance //public bool Paused { get; } = false; //public async Task OnActivateAsync() //{ //} //public async Task OnCompleteAsync() //{ //} }