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

96 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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; }
}
}