feat(dal): Task - доработка моделей

This commit is contained in:
Mikhail Trubnikov
2026-03-19 16:52:41 +10:00
parent 01c0200c6d
commit 92ab9ea6c2
15 changed files with 132 additions and 68 deletions

View File

@@ -4,7 +4,7 @@ using PARR.DAL.Models.Base;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models.Task
namespace PARR.DAL.Models.TaskModels
{
[Table("Errors", Schema = DataContextSettings.Task)]
[Comment("Таблица ошибок заданий")]
@@ -27,6 +27,6 @@ namespace PARR.DAL.Models.Task
public string? StackTrace { get; set; }
[ForeignKey(nameof(TaskId))]
public Task? Task { get; set; }
public TaskItem? TaskItem { get; set; }
}
}

View File

@@ -1,15 +1,17 @@
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.Task
namespace PARR.DAL.Models.TaskModels
{
[Table("Tasks", Schema = DataContextSettings.Task)]
[Comment("Таблица заданий")]
public class Task : IBase
public class TaskItem : IBase, IHistoryInitiator
{
[Key]
public Guid Id { get; set; }
@@ -20,7 +22,7 @@ namespace PARR.DAL.Models.Task
public TaskTypeEnum TypeCode { get; set; }
public TaskTaskStatusEnum StatusCode { get; set; }
public TaskItemStatusEnum StatusCode { get; set; }
public string? Payload { get; set; }
@@ -35,6 +37,10 @@ namespace PARR.DAL.Models.Task
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; }

View File

@@ -4,20 +4,20 @@ using PARR.DAL.Contracts;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models.Task
namespace PARR.DAL.Models.TaskModels
{
[Table("Statuses", Schema = DataContextSettings.Task)]
[Comment("Таблица статусов заданий")]
public class TaskStatus
{
[Key]
public TaskTaskStatusEnum Code { get; set; }
public TaskItemStatusEnum Code { get; set; }
public required string Name { get; set; }
public required string Description { get; set; }
public ICollection<Task> Tasks { get; set; } = new HashSet<Task>();
public ICollection<TaskItem> Tasks { get; set; } = new HashSet<TaskItem>();
}
}

View File

@@ -4,7 +4,7 @@ using PARR.DAL.Contracts;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models.Task
namespace PARR.DAL.Models.TaskModels
{
[Table("Types", Schema = DataContextSettings.Task)]
[Comment("Таблица типов заданий")]
@@ -22,7 +22,22 @@ namespace PARR.DAL.Models.Task
/// </summary>
public int MaxRetries { get; set; }
/// <summary>
/// Максимальное время выполнения
/// </summary>
public int MaxExecutionTimeMinutes { get; set; }
public ICollection<Task> Tasks { get; set; } = new HashSet<Task>();
/// <summary>
/// Одновременно может быть только одна задача или несколько
/// </summary>
public bool IsSingleton { get; set; }
/// <summary>
/// Сколько дней хранить в БД
/// </summary>
public int RetentionDays { get; set; }
public ICollection<TaskItem> Tasks { get; set; } = new HashSet<TaskItem>();
}
}