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