using Persistence.Models; namespace Persistence.Repositories; /// /// Интерфейс для работы с историческими данными /// /// public interface IChangeLogRepository : ISyncRepository where TDto : class, IChangeLogAbstract, new() where TChangeLogDto : ChangeLogDto { /// /// Добавление записей /// /// пользователь, который добавляет /// /// /// Task InsertRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Редактирование записей /// /// пользователь, который редактирует /// /// /// Task UpdateRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Добавляет Dto у которых id == 0, изменяет dto у которых id != 0 /// /// пользователь, который редактирует или добавляет /// /// /// Task UpdateOrInsertRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Помечает записи как удаленные /// /// пользователь, который чистит /// /// Task Clear(int idUser, CancellationToken token); /// /// Очистить и добавить новые /// /// /// /// /// Task ClearAndInsertRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Пометить записи как удаленные /// /// /// /// /// Task MarkAsDeleted(int idUser, IEnumerable ids, CancellationToken token); /// /// Получение дат изменений записей /// /// /// /// Task> GetDatesChange(CancellationToken token); /// /// Получение измененных записей за определенную дату /// /// /// /// Task> GetChangeLogForDate(DateTimeOffset? updateFrom, CancellationToken token); /// /// Получение текущих сейчас записей по параметрам /// /// /// /// Task> GetCurrent(DateTimeOffset moment, CancellationToken token); }