using PARR.Domain.Entities.JobEntities;
using PARR.Domain.Entities.JobGroupEntities;

namespace PARR.TemplateMatcher.Services.Implementations
{
    /// <summary>
    /// Определяет начальные статусы шаблона и расписания на основе типа группы работ.
    /// Если IsJobGroupAutoControl == true → берём из JobGroup.AutoControl.
    /// Иначе → берём из Job.AutoControl.
    /// </summary>
    public static class AutoControlResolver
    {
        public static (bool IsActiveTemplate, bool IsActiveSchedule) ResolveInitStates(
            Job job,
            JobGroup? jobGroup,
            bool defaultTemplateState = false,
            bool defaultScheduleState = false)
        {
            // Тип группы определяет источник настроек
            var isGroupLevel = jobGroup?.GroupType?.IsJobGroupAutoControl == true;

            if (isGroupLevel && jobGroup!.AutoControl != null)
            {
                return (
                    jobGroup.AutoControl.InitUsedTemplateState,
                    jobGroup.AutoControl.InitUsedScheduleState
                );
            }

            if (!isGroupLevel && job.AutoControl != null)
            {
                return (
                    job.AutoControl.InitUsedTemplateState,
                    job.AutoControl.InitUsedScheduleState
                );
            }

            return (defaultTemplateState, defaultScheduleState);
        }
    }
}
