IWorkflow.cs•6.28 kB
using Api.DigitalPages.Interfaces.Extensions;
using System;
using System.Collections.Generic;
using System.Text;
namespace Api.DigitalPages.Interfaces.Models
{
public interface IWorkflowGroupPresets : IBaseModelV3, IRestrictedDataV4<IWorkflowGroupPresetsAuthorization>
{
string Name { get; set; }
string OutputType { get; set; }
double? EstimatedHour { get; }
Guid? FileUidTemplate { get; set; }
Guid? FileVersionUidTemplate { get; set; }
List<IWorkflowGroupPresetConfig> Configs { get; set; }
}
public interface IWorkflowGroupPresetsAuthorization : IBaseAuthorizationV4
{
}
public interface IWorkflowGroupPresetsAuthorizationReference : IBaseAuthorizationReferenceV4
{
}
public interface IWorkflowGroupPresetConfig : IBaseModelV3<IWorkflowGroupPresets>, IDataPosition
{
string Name { get; set; }
string Description { get; set; }
string PreviewContentUid { get; set; }
List<IWorkflowGroupPresetConfigPropertyValue> Properties { get; set; }
IWorkflowGroup Group { get; set; }
List<IWorkItem> Items { get; set; }
}
public interface IWorkflowGroupPresetConfigPropertyValue : IBaseModelV3<IWorkflowGroupPresetConfig>, IDynamicPropertyValue
{
}
public interface IWorkflowGroup : IBaseModelV3, IRestrictedDataV4<IWorkflowGroupAuthorization>
{
string Name { get; set; }
string Description { get; set; }
double? EstimatedHour { get; }
List<IWorkflowGroupPropertyValue> Properties { get; set; }
List<IWorkflowGroupReference> FlowReferences { get; set; }
List<IWorkItem> Items { get; set; }
List<IWorkflowGroupPresetConfig> PresetConfigs { get; set; }
}
public interface IWorkflowGroupAuthorization : IBaseAuthorizationV4
{
}
public interface IWorkflowGroupAuthorizationReference : IBaseAuthorizationReferenceV4
{
}
public interface IWorkflowGroupReference: IBaseModelV3<IWorkflowGroup>
{
int Order { get; set; }
IWorkflow Flow { get; set; }
}
public interface IWorkflow : IBaseModelV3, IRestrictedDataV4<IWorkFlowAuthorization>
{
string Name { get; set; }
string Description { get; set; }
string InputMimeType { get; set; }
string InputDescription { get; set; }
string OutputMimeType { get; set; }
string OutputDescription { get; set; }
double? EstimatedHour { get; }
List<IWorkflowGroupReference> GroupReferences { get; set; }
List<IWorkflowVariant> Variants { get; set; }
List<IWorkStep> Steps { get; set; }
List<IWorkflowPropertyValue> Properties { get; set; }
List<IWorkItemRequiredProperty> RequiredProperties { get; set; }
}
public interface IWorkFlowAuthorization : IBaseAuthorizationV4
{
}
public interface IWorkFlowAuthorizationReference : IBaseAuthorizationReferenceV4
{
}
public interface IWorkflowVariant : IBaseModelV3<IWorkflow>
{
string Name { get; set; }
string Description { get; set; }
}
public interface IWorkStep : IBaseModelV3<IWorkflow>, IRestrictedDataV4<IWorkStepAuthorization>
{
string Name { get; set; }
string Description { get; set; }
double? EstimatedHour { get; set; }
int Order { get; set; }
List<IWorkItem> Items { get; set; }
List<IWorkStep> PreviousSteps { get; set; }
List<IWorkStep> NextSteps { get; set; }
}
public interface IWorkStepAuthorization : IBaseAuthorizationV4
{
}
public interface IWorkStepAuthorizationReference : IBaseAuthorizationReferenceV4
{
}
public interface IWorkStepDefinition : IBaseModelV3<IWorkStep>
{
IWorkflowVariant Variant { get; set; }
double? EstimatedHour { get; set; }
}
public interface IWorkItemRequest : IBaseModelV3
{
}
public interface IWorkItemProgress
{
Dictionary<Guid, double> IndividualProgress { get; }
double GeneralProgress { get; }
}
public interface IWorkItem : IBaseModelV3<IWorkStep>
{
string Name { get; set; }
string Description { get; set; }
string Origin { get; set; }
Guid? AskedBy { get; set; }
DateTime? PlannedDeadlineAt { get; set; }
DateTime? ProductionDeadlineAt { get; set; }
IWorkflowGroupPresetConfig WorkGroupPresetsConfig { get; set; }
IWorkflowGroup WorkGroup { get; set; }
IWorkItemStateDetail StateDetail { get; set; }
List<IWorkItemContent> Contents { get; set; }
List<IWorkItemProperty> Properties { get; set; }
List<IWorkItemAttachment> Attachments { get; set; }
List<IWorkItem> SuccessorItems { get; set; }
List<IWorkItem> PredecessorItems { get; set; }
List<IWorkItem> RelatedItems { get; set; }
}
public interface IWorkItemStateDetail: IBaseModelV3<IWorkItem>
{
WorkItemStates State { get; set; }
Guid StepUid { get; set; }
Guid FlowUid { get; set; }
Guid? Assigned { get; set; }
}
public enum WorkItemStates
{
Idle,
InProgress,
Completed,
Canceled
}
public enum WorkflowScope
{
Management,
Execution,
Read
}
public interface IWorkItemAttachment : IWorkItemContent
{
}
public interface IWorkItemContent : IBaseModelV3<IWorkItem>
{
Guid FlowUid { get; set; }
string DirectUri { get; set; }
Guid? FileUid { get; set; }
Guid CreatedBy { get; set; }
}
public interface IWorkflowGroupPropertyValue : IBaseModelV3<IWorkflowGroup>, IDynamicPropertyValue
{
}
public interface IWorkflowPropertyValue : IBaseModelV3, IDynamicPropertyValue
{
}
public interface IWorkItemRequiredProperty : IBaseModelV3, IDynamicProperty
{
}
public interface IWorkItemProperty : IBaseModelV3<IWorkItem>, IDynamicPropertyValue
{
}
}