namespace PARR.API.Contracts.V1.Responses
{
    // Вот это тот самый респонс
    public class EsppScheduleResponse
    {
        public DateTimeOffset NextRun { get; set; }

        public DateTimeOffset? LastRun { get; set; }

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

        public EsppScheduleTypeScheduleResponse? TypeSchedule { get; set; }

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

    public class EsppScheduleValResponse
    {
        public int Order { get; set; }

        public EsppScheduleTypeResponse? Type { get; set; }

        public EsppScheduleTypeValueResponse? Value { get; set; }
    }

    public class EsppScheduleTypeScheduleResponse
    {
        public int Id { get; set; }

        public required string Name { get; set; }

        public required string Description { get; set; }
    }

    public class EsppScheduleTypeScheduleWithDataResponse : EsppScheduleTypeScheduleResponse
    {
        public List<EsppScheduleTypeConfigWithDataResponse>? Configs { get; set; }
    }


    public class EsppScheduleTypeResponse
    {
        public int Id { get; set; }

        public required string Name { get; set; }

        public required string Description { get; set; }
    }

    public class EsppScheduleTypeWithDataResponse : EsppScheduleTypeResponse
    {
        public List<EsppScheduleTypeValueResponse>? Values { get; set; }
    }

    public class EsppScheduleTypeValueResponse
    {
        public Guid Id { get; set; }

        public required string Value { get; set; }

        public Guid? DistributionPeriodId { get; set; }
    }

    public class EsppScheduleTypeConfigWithDataResponse
    {
        public Guid Id { get; set; }

        public int Order { get; set; }

        public EsppScheduleTypeWithDataResponse? Type { get; set; }
    }

}
