using qdr.fnd.core.pqueue.Enums; using Quadarax.Foundation.Core.Data; namespace qdr.fnd.core.pqueue { /// /// Interface for the queue item. /// public interface IPsQueueItem : IPsQueueItemDescriptor { #region *** Properties *** /// /// Unique identifier of the queue item. /// string Id { get; } /// /// Date and time when the queue item was created. /// DateTime Created { get; } /// /// Date and time when the queue item was started to process (last cycle). /// DateTime? Started { get; } /// /// Date and time when the queue item was finished to process (last cycle). /// DateTime? Finished { get; } /// /// Process item current status. Changes are logged in . /// PsStatusEnum Status { get; } /// /// Defines if is transient state (going to status change, but status is already changed). Changes are logged in . /// NOTE: Transient is flag that set to True directly when status is changed. (means that first change Status, then transient) /// bool IsStatusTransient { get; } /// /// Defines current number of attempts left to process the queue item. /// int AttemptsLeft { get; } /// /// Collection of messages, errors, warnings logged during the process. /// IEnumerable Log { get; } /// /// Collection of status changes of the queue item. When or is changed, the status change is logged. /// NOTE: To this collection contains current state also. /// IEnumerable StatusJournal { get;} #endregion } }