using DD.Persistence.Models.ChangeLog;
using DD.Persistence.Models.Common;
using DD.Persistence.Models.Requests;
namespace DD.Persistence.Client.Clients.Interfaces;
///
/// Клиент для работы с записями ChangeLog
///
public interface IChangeLogClient : IDisposable
{
///
/// Добавить несколько записей
///
///
///
///
///
///
Task AddRange(Guid idDiscriminator, IEnumerable> dtos, string comment, CancellationToken token);
///
/// Импорт с заменой: удаление старых строк и добавление новых
///
///
///
///
///
///
Task ClearAndAddRange(Guid idDiscriminator, IEnumerable> dtos, string comment, CancellationToken token);
///
/// Удалить несколько записей
///
///
///
///
///
///
Task DeleteRange(Guid idDiscriminator, IEnumerable ids, string comment, CancellationToken token);
///
/// Получение актуальных данных на определенную дату (с пагинацией)
///
///
///
///
///
///
Task> GetByDate(Guid idDiscriminator, DateTimeOffset moment, PaginationRequest paginationRequest, CancellationToken token);
///
/// Получение исторических данных за определенный период времени
///
///
///
///
///
///
Task> GetChangeLogForInterval(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token);
///
/// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени)
///
///
///
///
Task GetDatesRange(Guid idDiscriminator, CancellationToken token);
///
/// Обновить несколько записей
///
///
///
///
///
///
Task UpdateRange(Guid idDiscriminator, IEnumerable dtos, string comment, CancellationToken token);
///
/// Получение статистики журнала изменений
///
///
///
///
Task> GetStatistics(ChangeLogQuery request, CancellationToken token);
///
/// Получение истории по журналу изменений
///
///
///
///
Task> GetHistory(ChangeLogQuery request, CancellationToken token);
}