using Microsoft.EntityFrameworkCore; using PARR.Common.Domain; using PARR.Constants; using PARR.DAL.Context; using PARR.DAL.Contracts; using PARR.DAL.Models.Base; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace PARR.DAL.Models.TaskModels { [Table("Tasks", Schema = DataContextSettings.Task)] [Comment("Таблица заданий")] public class TaskItem : IBase, IHistoryInitiator { [Key] public Guid Id { get; set; } public DateTimeOffset DateCreated { get; set; } public DateTimeOffset? DateModified { get; set; } public TaskTypeEnum TypeCode { get; set; } public TaskItemStatusEnum StatusCode { get; set; } public string? Payload { get; set; } /// /// Кол-во попыток /// public int RetryCount { get; set; } /// /// Дата завершения (устанавливается или когда Успех или когда Ошибка) /// public DateTimeOffset? ProcessedAt { get; set; } public string? InitiatorIp { get; set; } public ParrComponentsEnum? InitiatorParrComponentId { get; set; } public string? InitiatorComment { get; set; } [ForeignKey(nameof(TypeCode))] public TaskType? TaskType { get; set; } [ForeignKey(nameof(StatusCode))] public TaskStatus? TaskStatus { get; set; } public ICollection TaskErrors { get; set; } = new HashSet(); } }