using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.BLL.Services.Interfaces;
using PARR.Constants;
using PARR.DAL.Models;
using PARR.DAL.NextRunServices;
using PARR.DAL.Services.Interfaces;
using PARR.DAL.TransformServices;
using System.Reflection.Metadata.Ecma335;

namespace PARR.TemplateDistributor
{
    internal class TemplateDistributor : ITemplateDistributor
    {
        private readonly ILogger<TemplateDistributor> logger;
        private readonly INextRunService nextRunService;

        public TemplateDistributor(
            ILogger<TemplateDistributor> logger,
            INextRunService nextRunService
            )
        {
            this.logger = logger;
            this.nextRunService = nextRunService;
        }


        public async Task DistributeAsync(Guid jobGroupId)
        {
            // вызвать метод распределения, и получить новые даты
            var distributedTemplates = await nextRunService.GetNextRunForJobGroupWithAutoDistributionAsync(jobGroupId);

            if (distributedTemplates == null)
            {
                logger.LogWarning("При распределении шаблонов по jobGroupId {jobGroupId} вернулся null. Это ошибка. Прекращаю распределение.", jobGroupId);
                return;
            }

            // получить список шаблонов, сравнить их с распределенными, обновить даты, сохранить
        }
    }
}
