using PARR.Domain.Entities.Base.History;
using PARR.Domain.Enums;

namespace PARR.Domain.Common.Rabbit.Messages.TemplateMatching
{
    public record TemplateUpdaterMessage
    {
        public Guid TemplateId { get; init; }

        /// <summary>
        /// Id регламентной работы
        /// </summary>
        public Guid JobId { get; init; }

        public required string Name { get; init; }

        /// <summary>
        /// Актировать шаблон при инициализации
        /// </summary>
        public bool IsActiveTemplate { get; init; }

        /// <summary>
        /// Актировать расписание при инициализации
        /// </summary>
        public bool IsActiveSchedule { get; init; }

        //public DateTimeOffinit? LastRun { get; init; }

        //public DateTimeOffinit NextRun { get; init; }

        /// <summary>
        /// Это новый шаблон? (true - перемещаем существующий в новый Job) (false - шаблон остается в своем Job)
        /// </summary>
        public bool IsNew { get; init; }

        /// <summary>
        /// Id Юнита(единицы обслуживания)/ЭК
        /// </summary>
        public Guid UnitId { get; init; }

        /// <summary>
        /// Индекс, используется в групповых шаблонах
        /// </summary>
        public int? Index { get; init; }

        public TemplateStatusTypeEnum StatusTypeId { get; init; }

        /// <summary>
        /// Инициатор запроса к генератору
        /// </summary>
        public required HistoryInitiator Initiator { get; init; }

        /// <summary>
        /// Связанные ЭК для сгруппированного типа JobGroup
        /// </summary>
        public required List<UnitInTemplateMessage> UnitsInTemplate { get; init; }
    }


}
