using Quadarax.Application.QLiberace.Common.Entities.Base; using Quadarax.Application.QLiberace.Processor.Enums; namespace Quadarax.Application.QLiberace.Processor.Entities { public abstract class BaseQueue : QlbrcEntityTenantCode { /// /// Reference to data collection /// public long DataId { get; set; } /// /// Reference to status history collection /// public long StatusHistoryId { get; set; } /// /// Owner (abstract) key identifier. Usually entity code /// public string Owner { get; set; } = null!; /// /// Owner worker identifier who processing task /// public string AffinityWorker { get; set; } = null!; /// /// Defines item priority (default = 100). Higher value represents lower priority. Priority is used to ordering gathering data. /// public int Priority { get; set; } /// /// Defines Fully qualified name of provider class to execute item. /// public string Provider { get; set; } = null!; /// /// Record status /// public QueueStatusEnum Status { get; set; } /// /// Record processing from datetime /// public DateTime StartFrom { get; set; } /// /// Record processing to datetime. If overflow then record is expired. /// public DateTime? StartTo { get; set; } /// /// Last status change timestamp /// public DateTime LastStatusChanged { get; set; } /// /// Record created timestamp /// public DateTime Created { get; set; } //public virtual QueueData RootData { get; set; } = null!; //public virtual StatusHistory RootStatusHistory { get; set; } = null!; public virtual void CloneFrom(BaseQueue source) { Id = source.Id; DataId = source.DataId; StatusHistoryId = source.StatusHistoryId; Owner = source.Owner; AffinityWorker = source.AffinityWorker; Status = source.Status; StartFrom = source.StartFrom; StartTo = source.StartTo; LastStatusChanged = source.LastStatusChanged; Created = source.Created; Modified = source.Modified; Modifier = source.Modifier; TenantCode = source.TenantCode; Priority = source.Priority; Provider = source.Provider; } } }