namespace PARR.API.Contracts.V1.Responses.Statistics { public class StatTemplateDistributorResponse { public required JobGroupWithDistributionConfigResponse JobGroup { get; set; } /// /// Всего шаблонов /// public int AllCount => ItemsList?.Sum(t => t.AllCount) ?? 0; /// /// Всего шаблонов с активированными шаблонами и расписаниями /// public int IsActivatedAllCount => ItemsList?.Sum(t => t.IsActivatedCount) ?? 0; /// /// Всего шаблонов с деактивированными шаблонами и/или расписаниями /// public int IsDeactivatedAllCount => ItemsList?.Sum(t => t.IsDeactivatedCount) ?? 0; /// /// Шаблонов назначенных на выходной день /// public int TemplatesInWeekendAllCount => ItemsList?.Sum(t => t.TemplatesInWeekendCount) ?? 0; public List? ItemsList { get; set; } } public class StatDistributorItemResponse { public string? WorkGroupName { get; set; } public int AllCount => Statistics?.Sum(t => t.AllCount) ?? 0; public int IsActivatedCount => Statistics?.Sum(t => t.IsActivatedCount) ?? 0; public int IsDeactivatedCount => Statistics?.Sum(t => t.IsDeactivatedCount) ?? 0; public int TemplatesInWeekendCount => Statistics?.Sum(t => t.TemplatesInWeekendCount) ?? 0; public List? Statistics { get; set; } } public class StatTemplateDistributorDateStat { public DateTimeOffset Date { get; set; } public bool IsWorkDay { get; set; } public int AllCount { get; set; } public int IsActivatedCount { get; set; } public int IsDeactivatedCount { get; set; } public int TemplatesInWeekendCount => !IsWorkDay && Templates != null ? Templates.Count : 0; public List? Templates { get; set; } } public class StatTempleteDistribItem { public required string Name { get; set; } public DateTimeOffset NextRun { get; set; } public bool IsActiveTemplate { get; set; } public bool IsActiveSchedular { get; set; } public required ScheduleResponseAreaTimeOffsetResponse ResponseAreaOffset { get; set; } } }