namespace PARR.API.Contracts.V1.Responses
{
    public class JobGroupBaseResponse
    {
        public Guid Id { get; set; }

        public required string Name { get; set; }

        //public bool? IsUmbrella { 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 required JobGroupTypeResponse GroupType { get; set; }

        /// <summary>
        /// По какому полю грппируется, если используется тип ГРУППИРОВКА
        /// </summary>
        public FieldResponse? GroupingUnitField { get; set; }

        //    public bool IsAutoDistributionEnabled { 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 : JobGroupBaseResponse
    {
        //public List<JobResponse>? Jobs { get; set; }
        public int JobsCount { get; set; }

        public JobGroupScheduleResponse? Schedule { get; set; }

        public MatchingStatusResponse? MatchingStatus { get; set; }

        /// <summary>
        /// Расписание
        /// </summary>
        public ScheduleExcludeTypeResponse? ScheduleExcludeType { get; set; }

        /// <summary>
        /// Тип исключения - календарь
        /// </summary>
        public ScheduleExcludeTypeCalendarResponse? ScheduleExcludeTypeCalendar { get; set; }

    }

    public class JobGroupScheduleResponse
    {
        public string Timezone { get; set; } = string.Empty;

        public EsppScheduleTypeScheduleResponse? TypeSchedule { get; set; }

        public List<EsppScheduleValResponse>? Values { get; set; }
    }
}
