using PARR.Domain.Enums.Workload; namespace PARR.Domain.DTOs.Workload { /// /// Отчет о загруженности /// public record WorkloadReport { /// /// Тип отчета (все ЗО, все РГ, одна ЗО, одна РГ) /// public WorkloadReportType Type { get; init; } /// /// Название отчета (По всем ЗО, по одной ЗО) /// public required string DisplayName { get; init; } /// /// Подзаголовок, наименование конкретной ЗО/РГ /// public string? SubfilterName { get; init; } /// /// Дата формирования отчета /// public DateTimeOffset ReportCacheCreatedAt { get; init; } /// /// Дата формирования кэша ЗО и РГ /// public DateTimeOffset TemplateCacheCreatedAt { get; init; } /// /// Список дней /// public required List Days { get; init; } /// /// Нагруженность /// public required List 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; } /// /// ИД строки, если есть. /// Например JobId /// public Guid? ObjId { get; init; } public required WorkloadSummary Summary { get; init; } public required List 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; } } }