using Persistence.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistence.API;
///
/// Интерфейс для работы с API, предназначенного для CRUD-операций над данными
///
public interface IApiChangeLog
where TDto : class, new()
where TChangeLogDto : ChangeLogDto
{
///
/// Получение исторических данных на текущую дату
///
///
///
Task> GetChangeLogCurrent(CancellationToken token);
///
/// Получение исторических данных на определенную дату
///
///
///
///
Task> GetChangeLogForDate(DateTimeOffset historyMoment, CancellationToken token);
///
/// Добавить одну запись
///
///
///
///
Task AddAsync(TDto dto, CancellationToken token);
///
/// Добавить несколько записей
///
///
///
///
Task AddRangeAsync(IEnumerable dtos, CancellationToken token);
///
/// Обновить одну запись
///
///
///
///
Task UpdateAsync(TDto dto, CancellationToken token);
///
/// Обновить несколько записей
///
///
///
///
Task UpdateRangeAsync(IEnumerable dtos, CancellationToken token);
///
/// Удалить одну запись
///
///
///
///
Task DeleteAsync(int id, CancellationToken token);
///
/// Удалить несколько записей
///
///
///
///
Task DeleteRangeAsync(IEnumerable ids, CancellationToken token);
}