using PARR.Constants;
using PARR.DAL.DomainModels;
namespace PARR.DAL.TransformServices
{
///
/// Сервис трансформации расписания ЕСПП в дату/расписание
///
public interface IEsppScheduleTransformService
{
///
/// Получить следующую дату согласно расписания
///
///
///
///
DateTimeOffset GetNextDate(EsppScheduleDto esppSchedule, DateTimeOffset lastRun);
/////
///// Получить расписание
/////
/////
/////
/////
//List GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun);
///
/// Получить следующую дату по applicationInWorkId
///
///
///
///
Task GetNextDateAsync(Guid applicationInWorkId, DateTimeOffset lastRun);
///
/// Получить расписание по applicationInWorkId
///
///
///
///
Task> GetNextScheduleAsync(Guid applicationInWorkId, DateTimeOffset lastRun);
///
/// Получить следующую дату срабатывания в указанном периоде
///
///
///
///
///
DateTimeOffset GetNextDateForDistributionRun(DateTimeOffset lastRun, DistributionPeriodTypeEnum periodType, string distributionPeriod);
///
/// Получить дату начала периода распределения относительно опорной даты (Reference Date)
///
///
///
///
Task GetStartPeriodForDateAsync(Guid applicationInWorkId, DateTimeOffset date, DateTimeOffset refrenceDate, DistributionPeriodTypeEnum periodType, string distributionPeriod);
}
}