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