using PARR.Domain.Entities.JobEntities; using PARR.Domain.Entities.JobGroupEntities; namespace PARR.TemplateMatcher.Services { /// /// Определяет начальные статусы шаблона и расписания на основе типа группы работ. /// Если IsJobGroupAutoControl == true → берём из JobGroup.AutoControl. /// Иначе → берём из Job.AutoControl. /// 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); } } }