Merge branch 'report' into dev

This commit is contained in:
Mikhail Trubnikov
2026-05-19 09:51:51 +10:00
43 changed files with 695 additions and 339 deletions

View File

@@ -5,10 +5,19 @@
/// </summary>
public interface IBaseCache<T>
{
/// <summary>
/// Объект
/// </summary>
public T Data { get; set; }
/// <summary>
/// Дата формирования Cache
/// </summary>
public DateTimeOffset Timestamp { get; set; }
/// <summary>
/// Источник Cache (class)
/// </summary>
public string Source { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
namespace PARR.Domain.DTOs.TaskDTO
{
/// <summary>
/// DTO
/// </summary>
public record ActiveTask : TaskItemBase
{
public required TaskType Type { get; init; }
public required TaskStatus Status { get; init; }
}
}

View File

@@ -0,0 +1,26 @@
namespace PARR.Domain.DTOs.TaskDTO
{
/// <summary>
/// DTO
/// </summary>
public record TaskItemBase
{
public Guid Id { get; init; }
public DateTimeOffset DateCreated { get; init; }
public DateTimeOffset? DateModified { get; init; }
public int RetryCount { get; init; }
public DateTimeOffset? ProcessedAt { get; init; }
}
/// <summary>
/// DTO
/// </summary>
public record TaskItem : TaskItemBase
{
//todo:
}
}

View File

@@ -0,0 +1,16 @@
using PARR.Domain.Enums;
namespace PARR.Domain.DTOs.TaskDTO
{
/// <summary>
/// DTO
/// </summary>
public record TaskStatus
{
public TaskItemStatusEnum Code { get; init; }
public required string Name { get; init; }
public required string Description { get; init; }
}
}

View File

@@ -0,0 +1,36 @@
using PARR.Domain.Enums;
namespace PARR.Domain.DTOs.TaskDTO
{
/// <summary>
/// DTO
/// </summary>
public record TaskType
{
public TaskTypeEnum Code { get; init; }
public required string Name { get; init; }
public required string Description { get; init; }
/// <summary>
/// Максимальное кол-во попыток
/// </summary>
public int MaxRetries { get; init; }
/// <summary>
/// Максимальное время выполнения
/// </summary>
public int MaxExecutionTimeMinutes { get; init; }
/// <summary>
/// Одновременно может быть только одна задача или несколько
/// </summary>
public bool IsSingleton { get; init; }
/// <summary>
/// Сколько дней хранить в БД
/// </summary>
public int RetentionDays { get; init; }
}
}

View File

@@ -0,0 +1,36 @@
using System.Text.Json.Serialization;
namespace PARR.Domain.DTOs.Workload
{
/// <summary>
/// Инфо о состоянии КЭШ для отчета Workload
/// </summary>
public record WorkloadCacheInfo
{
/// <summary>
/// Статус отчета
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum StatusEnum
{
/// <summary>
/// Отчет формируется
/// </summary>
Processing = 1,
/// <summary>
/// Отчет сформирован
/// </summary>
Generated = 2,
/// <summary>
/// Нет отчета
/// </summary>
NotFound = 3
}
public StatusEnum Status { get; init; }
public DateTimeOffset? Date { get; init; }
}
}

View File

@@ -79,6 +79,11 @@ namespace PARR.Domain.Enums
/// <summary>
/// Генератор Template
/// </summary>
TemplateTaskGenerator = 13
TemplateTaskGenerator = 13,
/// <summary>
/// Генератор кэша отчетов Workload
/// </summary>
WorkloadBuilder = 14
}
}