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

        public required string TemplateDuration { get; set; }

        public required string ShortDescription { get; set; }

        public required string FullDescription { get; set; }

        public required string Solution { get; set; }

        public DateTimeOffset ReferenceDate { get; set; }

        public bool IsAutoDistributionEnabled { get; set; }

        public bool IsAgent { get; set; }

        public ApplicationResponse? Application { get; set; }
    }


    public class ApplicationInWorkResponse : ApplicationInWorkBaseResponse
    {
        public string? AgentName { get; set; }

        public int? AgentTimeOutSec { get; set; }

        public string? AgentScript { get; set; }

        //public WorkResponse? Work { get; set; }

        public int TemplatesCount { get; set; }


        #region Статистика

        public TemplateStats? TemplateStatistics { get; set; }

        public ScheduleStats? ScheduleStatistics { get; set; }

        #endregion


        public ApplicationInWorkScheduleResponse? Schedule { get; set; }

        public List<WorkGroupResponse>? WorkGroups { get; set; }

        //public JobAutoControlBaseResponse? AutoControl { get; set; }
    }


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

        public EsppScheduleTypeScheduleResponse? TypeSchedule { get; set; }

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


    //public class TemplateStats
    //{
    //    /// <summary>
    //    /// Активированных шаблонов
    //    /// </summary>
    //    public int Activated { get; set; }

    //    /// <summary>
    //    /// Синхронизировано шаблонов (TaskStatus = 30/Ok)
    //    /// </summary>
    //    public int Synchronized { get; set; }

    //    /// <summary>
    //    /// Ошибок синхронизации (RobotStatus = 33/Error)
    //    /// </summary>
    //    public int Errors { get; set; }
    //}


    //public class ScheduleStats
    //{
    //    /// <summary>
    //    /// Активированных шаблонов
    //    /// </summary>
    //    public int Activated { get; set; }

    //    /// <summary>
    //    /// Синхронизировано шаблонов (TaskStatus = 30/Ok)
    //    /// </summary>
    //    public int Synchronized { get; set; }

    //    /// <summary>
    //    /// Ошибок синхронизации (RobotStatus = 33/Error)
    //    /// </summary>
    //    public int Errors { get; set; }
    //}

}
