Files
parr_api/PARR.Domain/DTOs/Workload/WorkloadReport.cs

96 lines
2.5 KiB
C#
Raw Normal View History

using PARR.Domain.Enums;
namespace PARR.Domain.DTOs.Workload
{
/// <summary>
/// Отчет о загруженности
/// </summary>
public record WorkloadReport
{
/// <summary>
/// Тип отчета (все ЗО, все РГ, одна ЗО, одна РГ)
/// </summary>
public WorkloadReportType Type { get; init; }
/// <summary>
/// Название отчета (По всем ЗО, по одной ЗО)
/// </summary>
public required string DisplayName { get; init; }
/// <summary>
/// Подзаголовок, наименование конкретной ЗО/РГ
/// </summary>
public string? SubfilterName { get; init; }
/// <summary>
/// Дата формирования отчета
/// </summary>
public DateTimeOffset ReportCacheCreatedAt { get; init; }
/// <summary>
/// Дата формирования кэша ЗО и РГ
/// </summary>
public DateTimeOffset TemplateCacheCreatedAt { get; init; }
/// <summary>
/// Список дней
/// </summary>
public required List<WorkloadDayItem> Days { get; init; }
/// <summary>
/// Нагруженность
/// </summary>
public required List<WorkloadStatisticItem> Statistics { get; init; }
}
public record WorkloadSummary
{
public required WorkloadSummaryItem Total { get; init; }
public required WorkloadSummaryItem Activated { get; init; }
public required WorkloadSummaryItem Deactivated { get; init; }
}
public record WorkloadSummaryItem
{
public int Count { get; init; }
public double Average { get; init; }
public int Max { get; set; }
}
public record WorkloadDayItem
{
public DateOnly Date { get; init; }
public bool IsWeekend { get; init; }
}
public record WorkloadStatisticItem
{
public required string Title { get; init; }
public required WorkloadSummary Summary { get; init; }
public required List<WorkloadDailyItem> DailyMetrics { get; init; }
}
public record WorkloadDailyItem
{
public DateOnly Date { get; init; }
public bool IsWeekend { get; init; }
public int Total { get; init; }
public int Activated { get; init; }
public int Deactivated { get; init; }
}
}