using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using LCU.Library.Internal.DispatcherModels.Enums; using LCU.Library.Internal.DispatcherModels.Models; namespace LCU.Library.Internal.DispatcherModels.Entities; public class WorkItemExecution : Errorable { public WorkItemExecution() { } public WorkItemExecution(int workItemId) { WorkItemId = workItemId; Status = StatusType.Processing; StartedTimestamp = DateTime.Now; } public int WorkItemExecutionId { get; set; } [Required] public int WorkItemId { get; set; } [Required] public StatusType Status { get; set; } public DateTime? StartedTimestamp { get; set; } public DateTime? CompletedTimestamp { get; set; } [ForeignKey("WorkItemExecutionId")] public ICollection ExecutionMessages { get; set; } public static WorkItemExecution SetAsFinal(WorkItemExecution workItemExecution, StatusType finalStatus) { workItemExecution.Status = finalStatus; workItemExecution.CompletedTimestamp = DateTime.Now; return workItemExecution; } }