namespace PARR.API.Contracts.V1.Responses { public class JobGroupShortResponse { public Guid Id { get; set; } public required string Name { get; set; } } public class JobGroupBaseResponse : JobGroupShortResponse { //public Guid Id { get; set; } //public required string Name { get; set; } public required string ShortDescription { get; set; } public required string FullDescription { get; set; } public required string Solution { get; set; } public required string TemplateDuration { get; set; } public DateTimeOffset ReferenceDate { get; set; } public int? UserTimeZoneOffsetMinutes { get; set; } public bool IsWorkGroupTimezone { get; set; } public required JobGroupTypeResponse GroupType { get; set; } /// /// По какому полю грппируется, если используется тип ГРУППОВОЙ /// public FieldResponse? GroupingUnitField { get; set; } /// /// Группировать по ответственному за ЭК. (только если тип ГРУППОВОЙ) /// public bool? IsGroupByResponsible { get; set; } /// /// Включено автораспределение /// public bool IsAutoDistributionEnabled { get; set; } public JobGroupAutoControlResponse? AutoControl { get; set; } // public bool IsAgent { get; set; } // public string? AgentName { get; set; } // public int? AgentTimeOutSec { get; set; } // public string? AgentScript { get; set; } } public class JobGroupResponse : JobGroupWithDistributionConfigResponse //: JobGroupBaseResponse { //public List? Jobs { get; set; } public int JobsCount { get; set; } public JobGroupScheduleResponse? Schedule { get; set; } public MatchingStatusResponse? MatchingStatus { get; set; } /// /// Расписание /// public ScheduleExcludeTypeResponse? ScheduleExcludeType { get; set; } /// /// Тип исключения - календарь /// public ScheduleExcludeTypeCalendarResponse? ScheduleExcludeTypeCalendar { get; set; } ///// ///// Настройки автораспределения ///// //public JobGroupDistributionConfigResponse? DistributionConfig { get; set; } } public class JobGroupAutoControlResponse { public bool IsEnable { get; set; } public bool InitUsedTemplateState { get; set; } public bool InitUsedScheduleState { get; set; } } public class JobGroupScheduleResponse { public string Timezone { get; set; } = string.Empty; public EsppScheduleTypeScheduleResponse? TypeSchedule { get; set; } public List? Values { get; set; } } public class JobGroupWithDistributionConfigResponse : JobGroupBaseResponse { /// /// Настройки автораспределения /// public JobGroupDistributionConfigResponse? DistributionConfig { get; set; } } }