namespace PARR.Domain.DTOs.RobotTask
{
    /// <summary>
    /// Модель для задания роботам - расписания
    /// </summary>
    public record RobotTaskSchedule : RobotTaskBase
    {
        /// <summary>
        /// ИД расписания из ЕСПП. При создании, его не будет
        /// </summary>
        public string? EsppId { get; init; }

        public required string ScheduleName { get; init; }

        public bool IsActive { get; init; }

        public required string ResponseArea { get; init; }

        public required string TemplateName { get; init; }

        public Guid TemplateId { get; init; }

        public required string WorkGroup { get; init; }

        public string? Description { get; init; }

        public required string Exclude { get; init; }

        // сделал возможный null, так как может в будущем это поле может не заполняться
        public string? ExcludeCalendar { get; init; }

        public required string Timezone { get; init; }

        public required string RepeatRange { get; init; }

        /// <summary>
        /// Время создания наряда
        /// </summary>
        public required string GenerationTime { get; init; }

        /// <summary>
        /// Следующее срабатывание
        /// </summary>
        public required string NextStart { get; init; }

        /// <summary>
        /// Тип задания: Регулярно, еженедельно...
        /// </summary>
        public required string ScheduleType { get; init; }

        /// <summary>
        /// Код задания
        /// </summary>
        public int ScheduleTypeCode { get; init; }

        public List<RobotTaskScheduleSch>? Schedule { get; init; }
    }

    public record RobotTaskScheduleSch
    {
        public required string Type { get; init; }
        public int TypeCode { get; init; }
        public required string Value { get; init; }
        public int Order { get; init; }
    }

}
